我的情况如下:
/usr/local/lib/site-packages上有一个x.pth文件,其中包含错误安装numpy的路径。/usr/local和/usr/local/bin添加到我的路径中(这是一个假设,而不是已知的事实)。sys.path中添加了错误的numpy路径。当我运行python -S时,它不在那里。site.PREFIXES不包括/usr/local。我不知道为什么加载前面提到的pth文件。import sys; sys.path.remove('pth/to/faulty/numpy')失败,因为当加载pth文件时,sys.path中还没有错误的路径。是否有一种方法可以禁用上述pth文件的加载,或者在加载python之前从sys.path中删除路径?
我尝试过建立虚拟环境,但它不适合我目前的情况。
发布于 2014-09-07 21:20:34
我终于设法解决了这个问题--我的站点包库有一个easy_install.pth文件,因为某种原因包含了错误的numpy,而不是/usr/local/lib/site-packages上的x.pth文件。
在我花了很多时间在这个问题上之后,如果有其他人来到这里,我会分享一些我学到的东西:
lib/python2.X/site-packages。它描述了这里usercustomize模块添加到本地站点包(import site; site.getusersitepackages())中,它将被运行。然而,我花了很长时间才意识到--在python处理位于站点上的pth文件之后,在他再次处理这些包之前。如果我向执行此操作的方法(lib/site.py addsitedir)添加print语句,它将打印如下:
/home/user/..local/lib/python2.7/site-packages/home/user/py/lib/python2.7/site#这是您的代码运行/home/user/py/lib/python2.7/site-packages/numpy-1.9.0-py2.7-linux-x86_64.egg /home/user/Develop/Python/myproject /home/user/lmfit-0.7.2 /home/user/py/lib/python2.7/site-packages #注意:这是第二次运行usercustomize修复它,因为那个pth文件有机会再运行一次之后!发布于 2014-09-07 13:58:04
无法删除pth文件。标准python将在/usr/lib和/usr/local/lib中搜索pth文件。
不过,您可以通过viartualenv创建孤立的python。
https://stackoverflow.com/questions/25710724
复制相似问题