【问题标题】:How to include a python .egg library that is in a subdirectory (relative location)?如何包含子目录(相对位置)中的 python .egg 库?
【发布时间】: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 库?

【问题讨论】:

    标签: python egg


    【解决方案1】:

    .egg 只是一个 .zip 文件,它就像一个目录,您可以从中导入内容。

    您可以使用PYTHONPATH 变量将.egg 添加到您的路径,或将目录附加到 sys.path。另一种选择是使用指向鸡蛋的.pth 文件。

    有关详细信息,请参阅A Small Introduction to Python eggsPython EggsAll 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/

    【讨论】:

      猜你喜欢
      • 2015-08-27
      • 2010-09-20
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2014-03-06
      • 1970-01-01
      • 2020-10-14
      相关资源
      最近更新 更多