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

Python3.9测试目录独立引发ModuleNotFoundError问题求助

解决Python项目拆分目录后的测试导入问题

你的问题核心是Python默认的模块搜索路径不包含MyProject所在的目录,拆分目录后测试脚本无法定位目标模块。以下是几种实用的解决方法:

方法1:临时添加项目路径到PYTHONPATH

在运行测试前,将HomeDir目录加入Python的模块搜索路径:

  • Linux/macOS终端执行:
    export PYTHONPATH=/path/to/HomeDir
    python -m unittest Tests.ConfigHandlerTests
    
  • Windows命令提示符执行:
    set PYTHONPATH=C:\path\to\HomeDir
    python -m unittest Tests.ConfigHandlerTests
    

注意替换/path/to/HomeDir为你的实际路径,运行测试时需确保从HomeDir目录下执行,或用完整模块路径指定测试文件。

方法2:使用相对导入(按包结构运行)

修改ConfigHandlerTests.py中的导入语句为相对导入:

from ..MyProject.ConfigHandler import ConfigHandler

必须从HomeDir目录下运行测试,命令为:

python -m unittest Tests.ConfigHandlerTests

Python 3.3+支持命名空间包,无需添加__init__.py;若遇异常,可在MyProject和Tests目录下各创建空的__init__.py,帮助Python识别它们为包。

方法3:转为可安装包(推荐规范做法)

在HomeDir下创建setup.py文件:

from setuptools import setup, find_packages

setup(
    name="MyProject",
    version="0.1.0",
    packages=find_packages(),
)

用开发模式安装项目:

pip install -e .

之后修改测试文件的导入语句为:

from MyProject.ConfigHandler import ConfigHandler

这种方式下,无论在哪个目录运行测试,Python都能找到MyProject模块,是Python项目的标准规范做法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:16:04