【发布时间】:2020-01-16 22:34:57
【问题描述】:
所以 Foo 包中的 file_A 导入了 Foo 中的 file_B。
在Package Bar中,有一个file_X,在file_X中我要导入file_A。我可以将file_B很好地导入file_X,并且file_A可以在运行file_A时很好地导入file_B,但是,我不能终生将file_A导入file_X,因为它给了我这个错误:
Traceback (most recent call last):
File "PycharmProjects/Bar/file_X.py", line 1, in <module>
import Foo.file_A
File "PycharmProjects/Foo/file_A.py", line 1, in <module>
import file_B
ModuleNotFoundError: No module named 'file_B'
这是显示我的文件结构的图像。
我认为一个好的解决方案可能是在其父包的 init 文件中导入文件 file_A 和 file_B。我认为通过这样做,python现在可以访问这两个文件,因此它不仅可以导入file_A,还可以从file_X导入file_A中的file_B。但是,我得到了完全相同的错误。
实际上有一种方法可以解决这个问题,但我非常不屑一顾,那就是将file_B作为Foo.file_B导入A,而不仅仅是File_B。然而,当在 Foo 包本身中工作时,这会极大地扰乱命名和工作流程。
如果有人可以为我认为是 hack 提供更好的解决方案,我将永远感激不尽。
【问题讨论】:
标签: python python-3.x import python-import