如何包含子目录(相对位置)中的 python .egg 库?
Posted
技术标签:
【中文标题】如何包含子目录(相对位置)中的 python .egg 库?【英文标题】:How to include a python .egg library that is in a subdirectory (relative location)? 【发布时间】:2010-11-09 15:39:26 【问题描述】:如何导入存储在 .py 代码相对位置的 python .egg 文件?
例如,
My Application/
My Application/library1.egg
My Application/libs/library2.egg
My Application/test.py
如何从 test.py 中导入和使用 library1 和 library2,同时保留 .egg 库?
【问题讨论】:
【参考方案1】:.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
【讨论】:
所以:import sys sys.path.append("library1.egg") import foo 你好,如何动态加载包含在 egg 中的模块/库并实例化类?【参考方案2】:您可以在 sys.path 中包含每个鸡蛋,或创建一个提及每个鸡蛋的 .pth 文件。
如果您的系统中有很多鸡蛋,我建议您使用 buildout 之类的东西,这将使设置易于复制。它会为你处理鸡蛋。
http://pypi.python.org/pypi/zc.buildout/
【讨论】:
以上是关于如何包含子目录(相对位置)中的 python .egg 库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在IntelliJ中的路径搜索中查找此路径的任何位置排除node_modules