我对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使得第一种方法无法使用的其他程序/条目....
答案 0 :(得分:4)
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。