Python项目中持续出现ModuleNotFoundError: No module named 'src'的解决求助
Python项目中持续出现ModuleNotFoundError: No module named 'src'的解决求助
项目结构
我正在开发一个Python项目,结构如下:
/ ├── src/ │ ├── __init__.py │ ├── afrr/ │ │ ├── __init__.py │ │ ├── dumper.py │ │ └── cleaner.py │ ├── config.py │ ├── tests/ │ │ ├── afrr/ │ │ │ ├── __init__.py │ │ │ └── test_afrr_dumper.py
相关代码片段
test_afrr_dumper.py 用于测试 afrr/dumper.py 中的 dump_afrr_data 函数,核心代码如下:
src/afrr/dumper.py
import os import pandas as pd from datetime import datetime from src.config import PROCESSED_DIR # 确保PROCESSED_DIR在src/config.py中定义
src/tests/afrr/test_afrr_dumper.py
from afrr.dumper import dump_afrr_data from src.config import PROCESSED_DIR
遇到的问题
当我用 pytest 或直接通过Python运行测试时,总会触发以下错误:
ModuleNotFoundError: No module named 'src'
已尝试的解决方法
我试过以下几种方案,但问题依然存在:
设置PYTHONPATH:
在命令行执行:set PYTHONPATH=src用
echo %PYTHONPATH%验证路径已生效,但运行测试时错误依旧:pytest src/tests/afrr/test_afrr_dumper.py添加
__init__.py文件:
已经在以下目录添加了__init__.py,确保它们被识别为Python包:src/ src/afrr/ src/tests/afrr/将项目作为可编辑包安装:
- 创建了
setup.py文件:from setuptools import setup, find_packages setup( name="p", version="0.1", packages=find_packages(where="src"), package_dir={"": "src"}, install_requires=[ "pandas>=1.0.0", ], ) - 用以下命令安装项目:
pip install -e .
- 创建了
移动测试文件位置:
将test_afrr_dumper.py移动到src/根目录下,然后运行:pytest src/test_afrr_dumper.py还是遇到相同的
ModuleNotFoundError错误。
预期行为
src目录应该被识别为项目的根包,test_afrr_dumper.py中的导入语句(比如from src.config import PROCESSED_DIR)应该能正常解析,无需额外配置。
实际行为
尽管尝试了以上所有方法,Python始终无法将src识别为有效模块,持续抛出ModuleNotFoundError: No module named 'src'。
环境详情
- 操作系统:Windows 10
- Python版本:3.12.8
- 虚拟环境:使用
python -m venv创建的venv - 已安装依赖:
pandaspytest- 其他Python标准库
我的疑问
- 该如何正确配置项目,让
src被当作导入的根模块? - 在Python包/模块解析逻辑上,我遗漏了哪些关键点?
- 有没有不需要手动设置
PYTHONPATH的、更结构化的永久修复方案?
备注:内容来源于stack exchange,提问作者PhillyVanilly
相关产品推荐
相关产品推荐

