2017-02-06 1 views
1

У меня есть новая версия numpy под /opt/lib/python2.7/site-packages и стандартная (системная) версия под /usr/lib/python2.7/dist-packages. Я хочу, чтобы временно использовать новую версию Numpy поэтому я добавить следующую строку в начале моего сценария:python modifying sys.path не работает

In [1]: import sys 

In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages') 

In [3]: sys.path 
Out[3]: 
['', 
'/opt/numpy/lib/python2.7/site-packages', 
'/usr/local/bin', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/usr/lib/python2.7/dist-packages/IPython/extensions'] 

Как ни странно это все еще загружает старую Numpy версию:

In [4]: import numpy as np 

In [5]: np.__file__ 
Out[5]: '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc' 

ли кто-нибудь имеет ни малейшего представления о это?

Note1: Этот вопрос касается sys.path в python. Пожалуйста, не рекомендуем мне использовать virtualenv или изменять PYTHONPATH.

Примечание2: следующие файлы находятся под моей новой Numpy директории

$ ls /opt/numpy/lib/python2.7/site-packages 
easy-install.pth numpy-1.11.0-py2.7-linux-x86_64.egg __pycache__ site.py site.pyc 
+0

* «Пожалуйста, не рекомендуют мне использовать virtualenv» * - почему нет? Это, как правило, самый простой способ управления средой dev с конкретными версиями ваших требований. – jonrsharpe

+0

Какая среда вы используете, ноутбук Anaconda или IDE? –

+0

@DeepakM это python и ipython под '/ usr/bin/python' и'/usr/local/bin/ipython' соответственно. –

ответ

0

Видимо, я должен добавить Numpy .egg файл sys.path для того, чтобы заставить его работать.

In [1]: import sys 

In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg') 

In [3]: sys.path 
Out[3]: 
['', 
'/opt/numpy/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg', 
'/usr/local/bin', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/usr/lib/python2.7/dist-packages/IPython/extensions'] 

In [4]: import numpy as np 

In [5]: np.__file__ 
Out[5]: '/opt/numpy/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg/numpy/__init__.pyc' 

Это не работает, если добавить сайт-пакеты только:

In [1]: import sys 

In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages') 

In [3]: sys.path 
Out[3]: 
['', 
'/opt/numpy/lib/python2.7/site-packages', 
'/usr/local/bin', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', 
'/usr/lib/python2.7/dist-packages/IPython/extensions'] 

In [4]: import numpy as np 

In [5]: np.__file__ 
Out[5]: '/usr/lib/python2.7/dist-packages/numpy/__init__.pyc' 
Смежные вопросы