我对egg文件和使用easy_install安装它们有点困惑,希望你能帮助我。 (我阅读了人们对 pip 的推荐,但我想在继续之前了解这一点)。
如果我只是简单地从一个拇指驱动器复制 e,g django_guardian-1.0.2-py2.6.egg
并放入 PYTHONPATH 所指向的例如 ~/bar/
中,那么尝试通过 import guardian
导入内容会产生 importError。即使我复制了 easy_install.pth
也会发生此错误
import sys; sys.__plen = len(sys.path)
./django_guardian-1.0.2-py2.6.egg
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)
现在,使用
easy_install django-guardian
,当然没有这样的问题。我导航到 egg 文件的 easy_installed 目录,它包含的只是
.pth
和 .egg
文件。我想知道 easy_install 有哪些其他程序/条目使第一种方法无法使用... 最佳答案
easy_install
使用 .pth
文件将 .egg
文件添加到 sys.path
—— Python 搜索要导入的模块的位置列表。.pth
文件由 site
模块处理,但仅在四个预定义目录中。这些目录特定于平台并基于 sys.prefix
和 sys.exec_prefix
设置。在 Unix 上,最突出的通常是 /usr/lib/pythonXX/site-packages
。
由于您的自定义目录不是 site
处理的目录之一,因此您的 .pth
文件不会得到处理,Python 也不会查看 .egg
内部。
有关更多信息,请参阅 the site
module documentation 。
关于python:easy_install 期间会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6813331/