该
lib/python2.7/site-packages/site.py文件 通常无法加载
。那是因为
lib/python2.7/site.py添加
site-packages路径
sys.path要从头开始,而
site.pyin
site-packages根本不可见。如果输入
site.pyin
site-packages则表示错误,那么那里应该没有此类文件。
在没有补丁的Python中发生的情况是:
- Python开头为limited
sys.path
。site-packages
是 不是这个列表的一部分 ,除非您设置一个PYTHONPATH
包含也无妨变量。 - Python导入
site.py
,它将导入第一个列出的sys.path
。 lib/python2.7/site.py
找到并加载site.py
添加site-packages
到sys.path
就是这样,不再
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。
删除该文件是完全安全的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)