跨文件夹导入Python模块失败,请求排查语法错误原因
问题解决步骤
1. 先处理眼前的SyntaxError
你遇到的语法错误是因为在Python交互解释器(带>>>提示符的界面)里输入了系统终端命令——Python交互环境只能执行Python代码,无法直接运行系统级的脚本启动命令。
解决方式:
- 输入
exit()退出Python交互环境,回到系统终端(比如Windows的CMD、PowerShell)。 - 在系统终端中重新执行你的脚本启动命令:
c:/Users/erceuih/hatch-test-2/.venv/default/Scripts/python.exe c:/Users/erceuih/hatch-test-2/tests/test_addition.py
2. 解决后续可能出现的模块导入问题
修正执行方式后,大概率会遇到ModuleNotFoundError: No module named 'src',这是因为Python默认搜索路径里没有包含你的项目根目录,无法识别src模块。可以用以下三种方法解决:
方法一:临时设置PYTHONPATH环境变量
在系统终端中先执行命令,把项目根目录加入Python的模块搜索路径:
# Windows CMD环境 set PYTHONPATH=C:\Users\erceuih\hatch-test-2 # Windows PowerShell环境 $env:PYTHONPATH = "C:\Users\erceuih\hatch-test-2"
之后再运行测试脚本即可。
方法二:在测试脚本中手动添加路径
修改tests/test_addition.py,在导入模块前添加代码,手动将项目根目录加入Python搜索路径:
# tests/test_addition.py import sys from pathlib import Path # 获取项目根目录(当前脚本所在文件夹的上级目录) project_root = Path(__file__).parent.parent sys.path.append(str(project_root)) from src.add import add def test_add(): assert 1 + 1 == add(1, 1)
方法三:将项目安装为可编辑模式
在项目根目录(C:\Users\erceuih\hatch-test-2)下打开终端,执行:
pip install -e .
这会把src模块注册到Python环境中,后续无需额外配置就能直接导入,适合长期开发的项目。
内容的提问来源于stack exchange,提问作者Gino Chen
相关产品推荐
相关产品推荐

