Python:如何从__init__.py文件导入?

时间:2014-03-09 12:44:07

标签: python module flask

我正在使用Flask Framework建立一个网站,我在其中有一个文件夹,其中有一些python文件和一个__init__.py脚本(我想你会打电话这个文件夹是一个模块?)。在 init .py文件中,我有一句话:

db = Database(app)

我现在想在此文件夹中的其他脚本中使用db。通常我会使用from __init__ import db执行此操作,但这似乎并不合适,更不用说pythonic了。此外,因为它在__init__.py文件中,我想它应该以某种方式初始化整个文件夹/模块。

有人知道如何使用db文件中的__init__.py吗?欢迎所有提示!

2 个答案:

答案 0 :(得分:9)

尝试relative imports

from . import db

答案 1 :(得分:-1)

导入其所在的软件包时会自动导入 init .py文件。例如,假设 init .py位于名为的软件包中FOO 即可。导入foo时

import foo
from foo import *
import foo as ...

调用 init 文件。你使用python 2还是3?如果您使用的是python 3,则需要使用动态导入:

from * import __init__

一般来说,从 init 导入是不好的做法,我建议尝试将此代码放在包中的另一个文件中。