我正在使用运行 Debian 或 Ubuntu 的计算机。
在我的台式机(运行 Xubuntu 14.04)的当前配置中,${HOME}/.local/lib/python2.7/site-packages
[^1] 出现/usr/lib/python2.7/dist-packages
在sys.path
.
在我使用的其他计算机中情况正好相反,后者是我想要的行为:我希望我本地安装的软件包优于系统范围内安装的软件包。
如何确定台式计算机中的配置调整来自何处?
我是否必须检查*.pth
我在系统中找到的每个文件并尝试了解它指定的内容?
[^1]: 通过python setup.py --user
go安装的包
[^2]: 安装包apt-get install
似乎去哪里
更新:
我的问题似乎与python 如何加载 sys.path 中的所有值有关?
这个答案让我尝试了这个 strace 技巧,我可以看到第一个打开的.pth
文件/usr/local/lib/python2.7/dist-packages/easy-install.pth
包含以下代码:
import sys; sys.__plen = len(sys.path)
./cutadapt-1.3-py2.7-linux-x86_64.egg
./DendroPy-3.12.0-py2.7.egg
./pylint-1.4.0-py2.7.egg
./astroid-1.3.2-py2.7.egg
/usr/lib/python2.7/dist-packages
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)
删除/usr/lib/python2.7/dist-packages
线会导致/usr/lib/python2.7/dist-packages
后退sys.path
并出现在 之后${HOME}/.local/lib/python2.7/site-packages
。
我很确定我没有手动编辑任何.pth
文件。所以我想这可能是我以 root 身份使用easy-install
. 哪一个?
从里面的文件和目录的修改次数/usr/local/lib/python2.7/dist-packages/
可以看出,easy-install.pth
同一天修改了两个目录:astroid-1.3.2-py2.7.egg
和pylint-1.4.0-py2.7.egg
.
下一步将调查为什么这些模块的安装/usr/local/lib/python2.7/dist-packages
需要提前/usr/lib/python2.7/dist-packages
插入sys.path
.