假设我有以下文件夹结构:
project/
a.py
module/
b.py
c.py
__init__.py
a.py
需要导入b.py
,因此应该包含from module import b
b.py
需要导入c.py
,因此它应该只包含import c
,因为它们位于同一个文件夹中。但是当ModuleNotFoundError
运行时,这会抛出a.py
。
如果我将b.py
中的行切换为from module import c
,那么a.py
将会运行,但如果我尝试单独运行b.py
则会抛出ModuleNotFoundError
spark.sql("SELECT MAX(date) as maxDate FROM account").first()["maxDate"]
}。
在Python中导入的正确方法是什么?
答案 0 :(得分:1)
在python 3中尝试使用:
from . import c
在您的module / b.py文件中。
这会强制解释器查看模块的本地文件夹。
如果您需要将其作为可执行文件,您将无法运行您的b模块(至少不能使用python module/b.py
),或许可以查看:
作为sugested,为了运行你的b模块你可以做
python -m module.b
来自父文件夹。