如何包含一个位于子目录的Python .egg库?

16 投票
2 回答
28691 浏览
提问于 2025-04-15 12:48

如何导入存放在与.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这样的工具,这样设置起来会更简单,也更容易重复使用。它会帮你管理这些“蛋”。

http://pypi.python.org/pypi/zc.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

撰写回答