Python 2.7 python修改sys.path不';行不通

Python 2.7 python修改sys.path不';行不通,python-2.7,numpy,path,Python 2.7,Numpy,Path,我在/opt/lib/python2.7/site packages下有一个新的numpy版本,在/usr/lib/python2.7/dist packages下有一个标准(系统)版本。我想暂时使用新的numpy版本,因此我在脚本开头添加了以下内容: In [1]: import sys In [2]: sys.path.insert(1,'/opt/numpy/lib/python2.7/site-packages') In [3]: sys.path Out[3]: ['', '/

我在
/opt/lib/python2.7/site packages
下有一个新的numpy版本,在
/usr/lib/python2.7/dist packages
下有一个标准(系统)版本。我想暂时使用新的numpy版本,因此我在脚本开头添加了以下内容:

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

显然,我必须将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'

显然,我必须将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'

“请不要推荐我使用virtualenv”-为什么不?这通常是管理具有特定需求版本的开发环境的最简单方法。您使用的是什么环境,Anaconda的笔记本还是IDE?@DeepakM分别是
/usr/bin/python
/usr/local/bin/ipython
下的python和ipython。“请不要推荐我使用virtualenv”-为什么不?这通常是管理具有特定需求版本的开发环境的最简单方法。您使用的是什么环境,Anaconda的笔记本还是IDE?@DeepakM分别是
/usr/bin/python
/usr/local/bin/ipython
下的python和ipython。