You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从其他文件夹导入Python模块时遇ImportError的解决咨询

解决相对导入报错:ImportError: attempted relative import with no known parent package

问题场景

项目结构:

/my_project
    /first_folder
        first.py
    /second_folder
        second.py

second.py代码:

def hello():
    print('hello')

first.py代码:

from ..second_folder import second

second.hello()

直接运行first.py时触发报错:

ImportError: attempted relative import with no known parent package

可行解决方案

方案1:以包模块形式运行

在my_project的上级目录执行以下命令,将my_project识别为Python包:

python -m my_project.first_folder.first

这种方式会让Python自动处理包的层级关系,相对导入逻辑正常生效。

方案2:切换为绝对导入并添加路径

修改first.py代码,手动将项目根目录加入Python的搜索路径,再使用绝对导入:

import sys
from pathlib import Path

# 将项目根目录(my_project)添加到sys.path
sys.path.append(str(Path(__file__).parent.parent))

from second_folder import second

second.hello()

修改后可以直接运行first.py,无需依赖外部运行路径。

方案3:将my_project转为标准Python包

在my_project目录下创建空的__init__.py文件,使其成为标准可导入包:

/my_project
    __init__.py
    /first_folder
        first.py
    /second_folder
        second.py

之后可以选择方案1的方式运行,或者结合方案2的路径配置使用绝对导入。

内容的提问来源于stack exchange,提问作者Sahar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:50:18