我遇到问题我无法修复,虽然我几乎尝试了所有我知道的或者可以在其他地方阅读的内容。
我得到了一个包含这种结构的包:
package/
__init__.py
file.py
file2.py
file3.py
subpackage/
__init__.py
submodule1.py
submodule2.py
假设我在包/ init .py中声明了变量'db',我想将db导入file.py,我会这样做:
file1.py:
从包导入db
答案 0 :(得分:0)
尝试from project_top.project import db
或者更好地删除目录__init__.py
中的project_top
,因为这看起来不像是一个包。
答案 1 :(得分:0)
一般情况下,你不应该在你的__init__.py
文件中添加任何内容,除非是对于不依赖于其他任何导入的常量,因为 - 正如你所发现的那样 - __init__.py
中需要导入的任何内容从树的更深层次开始的事情会导致导入循环,当更深层次的它们自己尝试执行跨越仍在构造中的__init__.py
空间的导入时。