【发布时间】:2021-12-08 12:55:38
【问题描述】:
我很困惑如何最好地管理 python 包中的多个模块具有相同依赖项的以下情况。
假设我有一个包foo,它的文件结构是
foo/
__init__.py
bar.py
baz.py
bar.py 和 baz.py 都需要其他包,比如external_pkg,以便它们读取
# foo/bar.py
import external_pkg
def bar_fn(x):
# do something with external_pkg
和
# foo/baz.py
import external_pkg
def baz_fn(x):
# do something with external_pkg
问题:有没有办法重构包,以便我们可以只在__init__.py 中包含import external_pkg 行,而不是在模块中重复编写它?天真地从模块中删除 import external_pkg 并将其放入 __init__.py 会导致 NameError: name 'external_pkg' is not defined 错误。
在上面的例子中这显然不是一个大问题,但我正在尝试编写一个包含更多模块和更多常见导入的小包。我知道这也可能只是我的包装设计问题。我试图用谷歌搜索这个,但似乎找不到合适的术语组合来获得有用的答案。
【问题讨论】:
标签: python python-import python-module python-packaging