在我当前的项目中,我有以下结构:
- start.py (this script is run and imports from parentPackage and it's children)
- parentPackage
- subPackage1
- __init__.py
- foo.py
- bar.py
- ...
- subPackage2
- __init__.py
- foo1.py
- bar2
- ...
- __init__.py
- someDataSource.py
- someOtherThing.py
- hereIsAnotherOne.py
- andSomeMore.py
在__init__.py
文件中(下划线不显示在上面),我添加了如下导入:
示例(parentPackage)
^{pr2}$我对子包也重复了这个过程。在
然后当我想从.hereIsAnotherOne.py
导入一些数据源时,我只写:
from parentPackage import SomeDataSource
这几周来效果很好,但现在突然停止了工作。在
我曾试图从子包中删除__init__.py
文件,并在parentPackage的__init__.py
中导入这些文件,但这行不通。在
怎么会这样?我没有碰过__init__.py
文件或任何东西,我只在parentPackage中添加了一个新文件。在
我是不是做错了什么?这对我一直有效。我知道这个问题有很多答案,但似乎没有一个能解决我的问题。在
注意:我使用PyCharm作为我的IDE,奇怪的是PyCharm将导入识别为有效的,没有任何警告,直到运行时。在
谢谢大家!在
我在运行python3.6
您有一个循环导入:
在
parentPackage
中,从hereIsAnotherOne
和导入 在hereIsAnotherOne
中,从parentPackage
导入。必须通过直接从源模块someDataSource.py
导入SomeDataSource
或在使用它的函数内部本地导入它来解决这个问题。在不管怎样,循环导入的发生都会让您在重新构建当前的包架构时花费大量时间和精力。在
相关问题 更多 >
编程相关推荐