【发布时间】:2021-06-01 08:05:43
【问题描述】:
假设我有 3 个文件:
inc/a.py:
foo = 'bar'
inc/b.py:
from a import foo
c.py:
from inc.b import foo
如果我运行python3 inc/b.py,一切都很好。但是,当我运行python3 c.py 时,会出现以下错误:ModuleNotFoundError: No module named 'a'。
如果我将inc/b.py 更改为
from .a import foo
命令python3 c.py 现在运行正常,但python3 inc/b.py 失败并显示ImportError: attempted relative import with no known parent package。
如何构造代码以使c.py 和inc/b.py 都保持直接可执行?我正在使用 Python 3.9.5。
【问题讨论】:
-
要在包中执行模块,请使用
python -m inc.b,然后import .a将起作用
标签: python python-3.x import