2011-07-25 4 views
4

私はeggファイルについて少し混乱していて、easy_installを使用してインストールすると、あなたがそれを手伝ってくれることを願っています。 (私は人々のピップに関する勧告について読んだが、前に進む前にこれを理解したい)。python:easy_installで何が起こるのですか?

私は単に電子をコピーする場合、PYTHONPATHがimport guardian経由でコンテンツをインポートしようとし、指した例えば~/bar/でサムドライブと場所、と言うからグラムdjango_guardian-1.0.2-py2.6.eggは私にはImportErrorをもたらすであろう。このエラーは、私がeasy_install.pthはもちろん、そのような問題がなかった、easy_install django-guardianを使用して、今すぐ

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) 

にコピーした場合にも発生します。

eggファイルがeasy_installedされたディレクトリに移動しました。それには.pth.eggというファイルが含まれていました。私はeasy_installを、最初の方法が使用できなくなり、そのどこかに作るん、他のどのような手順/エントリ知りたい....

+1

なぜ卵子をコピーしますか?まだ 'virtualenv'に自分自身を紹介していませんか? – Nemoden

+0

@ネモデン、はい、私はvirtualenvについて聞いたが、私は上記がうまくいかない理由に興味があります.. – goh

答えて

4

easy_installsys.path.eggファイルを追加する.pthファイルを使用しています - Pythonはにモジュールを検索した場所のリストをインポート。

.pthファイルはsiteモジュールで処理されますが、あらかじめ定義された4つのディレクトリでのみ処理されます。これらのディレクトリはプラットフォーム固有で、sys.prefixsys.exec_prefixの設定に基づいています。 Unixでは、最も顕著なものは通常/usr/lib/pythonXX/site-packagesです。

siteによって処理されるディレクトリの1つではないため、.pthファイルは処理されず、Pythonは.eggの内部を見ません。

詳細については、the site module documentationを参照してください。

関連する問題