2016-03-22 27 views
1

En son numpy (1.10) sürümünü kullandığımı düşünmüştüm En azından pip list çalıştırdığımda numpy (1.10.4)'u görüyorum. BenNumpy_1.8'i maskelemek için numpy_1.8'i nasıl durdurabilirim?

import numpy 
numpy.__version__ 

piton tercüman içine almak ve yazdığınızda Ancak, son zamanlarda bazı yeni yükledim çünkü 1.8.2 1.10 sürümü bir süre sonra yüklü var bekliyoruz

'1.8.2' 

bkz kabul cevap numpy ekibi sürüm 1 atıfta belirtti

RuntimeError: module compiled against API version a but this version of numpy is 9 

OpenCV 2.4.8: module compiled against API version 9 yılında: işe kullanılan bazı kod çalıştırdığınızda paketleri ve şimdi, bu hatayı alabilirsiniz. 8 numpy sürüm 9 olarak. Yani, aslında numpy_1.10 kullanıyordum ve bir şekilde numpy_1.8 yüklü olduğunu düşünüyorum.

İlk sorum şu: Bu nasıl oldu ve nasıl korunabilirim?

Ayrıca numpy_1.8'i 1.10'u engellemeyi nasıl durduracağımı bilmek istiyorum. İlk düşüncem apt-get'i kullanarak numpy_1.8'i kaldırmaktı, ancak bu 1.8'e bağlı olan diğer birçok paketi kaldırmıştı.

Sadece 1.8 sürümünden kurtulmak için rm kullanmak cazip gelebilir, ancak diğer paketlerin etkileneceğinden endişeleniyorum.

İkinci düşüncem, 1.10 sürümünün 1.8 sürümünden önce göründüğünden emin olmak için sys.path'i değiştirmektir. Şimdiye kadar PYTHONPATH kullanmıyorum. PYTHONPATH kullanmadan sys.path değiştirmenin bir yolu var mı? Bu makul bir yaklaşım mı?

+0

Tamam - Ben virtualenv kullanarak varsayalım, ya da Docker bana yardımcı olur, ama hala şimdi ne yapacağımı anlamaya ihtiyacım var. – user1245262

cevap

0

Yapılacak en basit şey NumPy 1.8 kurulumunuzu kaldırmaktır. 1.8 kurulumunuzun nerede olduğunu bulmak için numpy.__file__'a bakın, ardından dizini silin.

Alternatif olarak, bahsettiğiniz gibi ve 1.8'i silmek istemiyorsanız, yolunuzu da değiştirebilirsiniz.

import sys 
sys.path.insert(3, '<path_to_your_NumPy_1.10_install>') 

Sana üstündeki '' gibi şeyler tutmak, böylece 3 pozisyonunda ekledikten ama gerektiğinde bunu değiştirebilir: Böyle bir şey yapmak gerektiğini.

+0

Teşekkürler, ama anlatabildiğim kadarıyla, bu sadece python yorumlayıcısının tek bir çağrılması için çalışıyor. Ben numpy_1.10 – user1245262

+0

@ user1245262 gerektiren bir modülü yüklediğimde bunu hatırlamak istemiyorum; Bu çözümün ilk yarısına itirazınız nedir? – farenorth

+0

Synaptic kullanarak numpy_1.8'i kaldırmaya çalıştığımda, silinecek olan numpy_1.8'e dayanan birkaç paket daha listelendi. Numm_1.8'in bulunduğu dizini kaldırmak için rm -rf'yi kullanırsam, ona bağlı olan paketlere ne olur? Numpy_1.10'u kendi başına mı bulacak yoksa kaldırılması ve yeniden yüklenmesi gereken bir paketler dizisi mi ayarlayacağım? – user1245262

İlgili konular