如何导入存储在.py代码的相对位置的python .egg文件?
例如,
My Application/
My Application/library1.egg
My Application/libs/library2.egg
My Application/test.py
如何从test.py中导入和使用library1和library2,同时将.egg库保留在原位?
答案 0 :(得分:27)
.egg只是一个.zip文件,就像一个可以导入内容的目录。
您可以使用PYTHONPATH
变量将.egg
添加到路径中,或者将目录附加到
sys.path
。另一个选择是使用指向鸡蛋的.pth
文件。
有关详细信息,请参阅A Small Introduction to Python eggs,Python Eggs和All about eggs。
例如,如果您的library1.egg
包含名为foo
的包,并且您将library1.egg
添加到PYTHONPATH
,则只需import foo
如果你不能设置PYTHONPATH
,你可以写:
import sys
sys.path.append("library1.egg")
import foo
答案 1 :(得分:2)
您可以在sys.path中包含每个鸡蛋,或创建一个提及每个鸡蛋的.pth文件。
如果您的系统中有许多鸡蛋,我建议您使用buildout之类的东西,这样可以轻松复制设置。它会为你处理鸡蛋。