这是我的 Python 项目文件夹结构。
project\
main_code.py
code\
__init__.py
s_utils.py
data\
我尝试过main_code.py
:
import os
os.chdir('absolute path to project folder')
from .code import s_utils
最后一行返回错误:
ImportError: attempted relative import with no known parent package
这里出了什么问题?根据这篇文章,它应该可以工作。
当您使用相对导入(例如)时
from .code import s_utils
,Python 期望脚本 (main_code.py
) 作为包的一部分执行。这意味着它应该作为模块导入,而不是直接作为脚本运行。直接运行
main_code.py
(例如python main_code.py
),它将被视为顶级脚本,而不是包的一部分。因此,相对导入不起作用,因为没有父包上下文。作为一种解决方案,您可以用绝对导入替换相对导入:
或者将项目目录添加到 Python 路径: