该lib/python2.7/site-packages/site.py
文件 。那是因为lib/python2.7/site.py
添加site- packages
路径sys.path
要从头开始,而site.py
insite- packages
根本不可见。如果输入site.py
insite-packages
则表示错误,那么那里应该没有此类文件。
在没有补丁的Python中发生的情况是:
就是这样,不再site.py
加载其他模块。即使您尝试过,它也会找到 已经导入 的模块;sys.modules['site']
存在并保存从中加载的对象lib/python2.7/site.py
。
但是,您的安装中安装的是较旧的setuptools
版本,并且包含的特殊版本site.py
,如果尚不存在该easy_install
命令,该命令也将安装到site- packages
该版本中。它会加载原始site.py
通过明确地扫描原件sys.path
与任何PYTHONPATH
忽略- supplied路径和加载原始site.py
手动模块使用imp.find_module()
和imp.load_module()
低级别的功能,从而绕过正常模块高速缓冲存储器。
其目的是更改sys.path
顺序以使PYTHONPATH
列出的.pth
文件具有更高的优先级,请参阅添加补丁的原始提交:
注意:此版本包括被黑的“ site.py”,以支持处理sys.path上站点包 之前的 目录中的.pth文件。
最早在2006年,该补丁已从最新setuptools
版本中完全删除。setuptools
因此,您的Linux发行版已被设置为添加lib/python2.7/site- packages
到您PYTHONPATH
的外壳中,或者您的shell已为您设置了此版本,或者您的Python已被修补为包括它, 您的中已有旧的setuptools
“补丁” site-packages
。