Python: 如何从 __init__.py 文件中导入?
我正在用 Flask框架 建一个网站。在这个网站里,我有一个文件夹,里面放了一些Python文件,还有一个叫做 __init__.py
的脚本(我想这个文件夹可以称作一个模块吧?)。在这个 init.py 文件里,我有一行代码:
db = Database(app)
现在我想在这个文件夹里的另一个脚本中使用 db
。通常我会用 from __init__ import db
这样的方式来做,但我觉得这样做不太对,更别提这是不是符合Python的风格了。而且,因为它是在 __init__.py
文件里,我想它应该是为整个文件夹/模块初始化的。
有没有人知道我该怎么从 __init__.py
文件中使用 db
呢?欢迎任何建议!
2 个回答
0
__init__.py
文件在你导入它所在的包时会自动被导入。比如说,如果 __init__.py
在一个叫做 foo 的包里,当你导入 foo 的时候,
import foo
from foo import *
import foo as ...
__init__
文件就会被调用。你是在用 Python 2 还是 3 呢?如果你用的是 Python 3,你需要使用动态导入:
from * import __init__
一般来说,从 __init__
导入东西并不是个好习惯,我建议你把这些代码放在包里的其他文件中。
25
试试相对导入
from . import db