如何包含一个位于子目录的Python .egg库?
如何导入存放在与.py代码相对位置的python .egg文件?
举个例子,
My Application/
My Application/library1.egg
My Application/libs/library2.egg
My Application/test.py
我想在test.py里面导入和使用library1和library2,同时又不想移动这些.egg库文件,应该怎么做呢?
2 个回答
2
你可以把每个“蛋”(egg)添加到系统的路径中,或者创建一个.pth文件,里面列出每个“蛋”。
如果你需要在系统中使用很多“蛋”,我建议你使用像buildout这样的工具,这样设置起来会更简单,也更容易重复使用。它会帮你管理这些“蛋”。
28
.egg 文件其实就是一个 .zip 文件,它的作用像一个文件夹,你可以从中导入一些东西。
你可以使用 PYTHONPATH
这个变量来把 .egg
文件添加到你的路径中,或者把一个文件夹添加到 sys.path
。还有一种方法是使用 .pth
文件来指向这些 .egg 文件。
想了解更多信息,可以查看 Python eggs 简介、Python Eggs 和 关于 eggs 的所有信息。
举个例子,如果你的 library1.egg
文件里面有一个叫 foo
的包,而你把 library1.egg
添加到了 PYTHONPATH
,那么你就可以直接使用 import foo
来导入它。
如果你不能设置 PYTHONPATH
,你可以写:
import sys
sys.path.append("library1.egg")
import foo