【问题标题】:Resolving dependency in python between modules解决模块之间的python依赖关系
【发布时间】:2010-10-16 02:29:48
【问题描述】:

我是 python 的新手。我确实有两个模块。型号 M1 和模块 m2。 从 m2 ,我需要引用 m1 和 m2 ,而 m1 位于磁盘中的两个不同位置。

当我在执行 m2 之前尝试导入 m1 时,当然是说找不到 m1。 如何将我的解释器指向 m1 的位置。

谢谢 J

【问题讨论】:

  • -1:无代码。 -1:没有实际的错误消息。

标签: python dependencies


【解决方案1】:

完全不清楚您的具体问题是什么(请提供更多详细信息!),但您可能会发现这些很有用(进一步谷歌搜索将帮助您针对您的特定需求找到具体答案):

  • PYTHONPATH 环境变量
  • .pth 文件出现在 PYTHONPATH 中的目录中
  • 在导入前操作 sys.path

但是,如果 m2 依赖于 m1,并且它们分布在一起,那么使用 packages 将它们放在同一个目录树中可能会更好。

【讨论】:

    【解决方案2】:

    如果您无法修改 shell 环境,您可以在脚本中将您希望解释器搜索模块的任何目录附加到 sys.path。其实就是读取PYTHONPATH这个环境变量,用来初始化sys.path。

    【讨论】:

      【解决方案3】:

      可能的情况取决于模块的详细信息,但通常您可以只从模块中导入所需的具体对象,如下所示:

      在 B.py 中

      from A import classA1, funA1
      

      在 A.py 中

      from B import classB1, funB1
      

      以便您只导入需要的内容。如果依赖关系更复杂,这可能行不通,但总的来说应该是可能的(除非你实际上在对象级别有真正的相互递归依赖关系,你无法解决!)。

      【讨论】:

        猜你喜欢
        • 2013-01-19
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        相关资源
        最近更新 更多