2009-07-10 11 views
14

相対的な場所に.pyコードで格納されているpython .eggファイルをどのようにインポートしますか?例えば サブディレクトリ(相対位置)にあるpython .eggライブラリを含めるにはどうすればいいですか?

My Application/ 
My Application/library1.egg 
My Application/libs/library2.egg 
My Application/test.py 

どのようにインポートして、インプレース.eggライブラリを残したまま、test.pyの中からライブラリ1とlibrary2を使うのですか?

答えて

24

.eggはちょうどあなたが物をインポートできるディレクトリのように機能する.zipファイルです。

あなたのパスに.eggを追加したり、 sys.pathにディレクトリを追加するPYTHONPATH変数を使用することができます。もう一つの選択肢は、卵を指すファイル.pthを使用することです。

詳細については、A Small Introduction to Python eggs,Python EggsおよびAll about eggsを参照してください。あなたのlibrary1.eggfooという名前のパッケージが含まれており、場合

たとえば、あなたがPYTHONPATHを設定できない場合は、単にimport foo

は、あなたが書くことができ、PYTHONPATHlibrary1.eggを追加します。

import sys 
sys.path.append("library1.egg") 
import foo 
+3

ので: 輸入SYS sys.path.append( "library1.egg") 輸入fooの –

+0

やあ、どのように私は動的に卵に含まれるモジュール/ライブラリをロードし、クラスをインスタンス化することができますか? – Mythri

2

各eggをsys.pathに含めることも、各eggを記述する.pthファイルを作成することもできます。

あなたのシステムに必要な卵がたくさんある場合は、buildoutのようなものを使用することをお勧めします。これによりセットアップが簡単に複製可能になります。それはあなたのために卵を処理します。

http://pypi.python.org/pypi/zc.buildout/

関連する問題