简体   繁体   English

从包__init__导入

[英]Import from packages __init__

I got problem I'm not able to fix although I tried almost everything I know or could read somewhere else. 我遇到了我无法解决的问题,尽管我尝试了几乎所有我知道或可以在其他地方读到的东西。

I got a package with this structure: 我得到了一个具有以下结构的软件包:

package/
__init__.py
    file.py
    file2.py
    file3.py
    subpackage/
        __init__.py
        submodule1.py
        submodule2.py

Lets say I have variable 'db' declared in package/ init .py and I want to import db into file.py, would I do it as: 可以说我在package / init .py中声明了变量'db',并且我想将db导入到file.py中,我可以这样做:

file1.py: file1.py:

from package import db 从包导入数据库

?

请尝试from project_top.project import db oder更好地删除目录project_top__init__.py ,因为它看起来并不像是一个软件包。

通常,除了可能不依赖于导入的常量的常量外,永远不要在__init__.py文件中放入任何内容,因为__init__.py中的任何内容都需要从树的更深层次中导入内容,这正如您所发现的一样。当它们本身更深层次地尝试执行跨越仍在构造中的__init__.py空间的导入时,可能会导致导入循环。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM