Python导入突然停止工作

2024-10-02 16:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在我当前的项目中,我有以下结构:

- 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


Tags: and文件项目runfrompyinitis
1条回答
网友
1楼 · 发布于 2024-10-02 16:34:56

您有一个循环导入:

parentPackage中,从hereIsAnotherOne导入 在hereIsAnotherOne中,从parentPackage导入。必须通过直接从源模块someDataSource.py导入SomeDataSource或在使用它的函数内部本地导入它来解决这个问题。在

不管怎样,循环导入的发生都会让您在重新构建当前的包架构时花费大量时间和精力。在

相关问题 更多 >