[英]python: what happens during easy_install?
我對egg文件有點困惑,並使用easy_install安裝它們,希望你能幫助我。 (我讀到人們對pip的推薦,但我想在繼續之前理解這一點)。
如果我簡單地復制e,g django_guardian-1.0.2-py2.6.egg
,例如,一個django_guardian-1.0.2-py2.6.egg
並放置在例如~/bar/
PYTHONPATH指向的地方,嘗試通過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
。
有關更多信息,請參閱site
模塊文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.