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

Python中从子包导入模块时出现ModuleNotFoundError问题求助

解决Python项目测试文件的模块导入问题

针对你遇到的test.py无法导入functions模块的问题,给你几个可行的解决办法:

方法1:以包的形式运行测试文件

在项目根目录(projectX)的上级目录下,执行以下命令运行test.py:

python -m projectX.test.test

这种方式会让Python把projectX当作完整包识别,此时test.py里直接用from functions.hello import greet就能正常导入,和main.py的写法一致。

方法2:修改sys.path指向项目根目录

在test.py最开头添加以下代码,把projectX目录加入Python的模块搜索路径:

import os
import sys
# 获取projectX目录的绝对路径
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 把项目根目录插入到sys.path最前面,确保优先搜索这里的模块
sys.path.insert(0, project_root)

from functions.hello import greet

你之前用sys.path.append可能因路径优先级问题没生效,insert(0)能保证项目根目录的模块被优先找到。

方法3:用相对导入并以包模块运行

如果想用相对导入from ..functions.hello import greet,需要在projectX目录下执行命令:

python -m test.test

此时Python会将test目录识别为projectX包的子包,相对导入的父包关系成立,不会再报"no known parent package"错误。

补充说明

直接双击或用python test/test.py运行test.py时,它被当作独立顶级脚本而非项目包的一部分,这就是相对导入失败、绝对导入找不到模块的核心原因——Python此时的模块搜索路径不包含projectX目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:04:56