你如何引用 python 包的其他分支?

How do you reference other branches of a python package?

我正在尝试创建一个 python 程序包,其中一个分支中的代码引用并行分支中的代码。

例如:

my_package/
 ├─utils/
 │  └─foo.py
 └─other_branch/
    └─bar.py

如何在 other_branch.bar.py 中引用 utils.foo.py 中的代码?

如果 my_package 是一个有效的包,您可以像往常一样从中导入:

import my_package.branch_1.foo

或者,您可以使用相对导入:

import ..branch_1.foo

有关详细信息,请查看 documentation

做那样的事情通常是不好的做法。层次结构在逻辑上和结构上都应该是层次结构。 正确设计项目时,每个目录只需要其子目录中的包。 话虽这么说,你应该能够做这样的事情:

foo.py:

from ..branch_2 import bar

您应该确保所有目录中都有 __init__.py