文件夹结构:
foo/
bar.py
__init__.py
test.py
foo/__init__.py
有import bar
我正在test.py
跑步import foo
我如何__init__.py
导入bar.py
?
ModuleNotFoundError: No module named 'foo'
为什么 Python 不为我的包创建新范围并为导入目录创建根foo
目录?
相对路径似乎也不起作用(我收到了SyntaxError
),尽管我正在寻找一种允许绝对路径的解决方案。
import .bar
两个不可接受的答案:
我不能用
import foo.bar
。我需要这个foo
包有自己独立的层/范围,这样我就可以在我的计算机中的任何地方移动它并从任何地方导入它。这意味着根可能会改变并且import foo.bar
不会总是有效。我无法将
foo
文件夹添加到我的路径中。显然,这会使路径变得混乱,并且很容易发生名称冲突。开始的感觉会说这个包的文件应该与使用它的路径分开。
也许有一个解决方案可以将此包的目录添加到仅针对该包范围的路径中,在__init__.py
?