2017-02-06 43 views
1

我有一個新的numpy版本/opt/lib/python2.7/site-packages下的標準(系統)版本/usr/lib/python2.7/dist-packages下。我想暫時使用新numpy的版本,所以我加在我的腳本的開頭如下:python修改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' 

有沒有人有任何想法這個?

注意1:這個問題是關於python中的sys.path。請不要推薦我使用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」 * - 爲什麼不呢?這通常是使用特定版本的需求管理開發環境的最簡單方法。 – jonrsharpe

+0

你使用的是什麼環境,Anaconda's Notebook或IDE? –

+0

@DeepakM它分別是在'/ usr/bin/python'和'/ usr/local/bin/ipython'下的python和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'