安装llm开发依赖后运行pytest出现ModuleNotFoundError求助
解决pytest无法识别llm模块的问题
以下是针对该问题的排查方向和解决方法:
确认可编辑安装的链接文件是否存在
使用pip install -e '.[test]'的可编辑模式,会在虚拟环境的site-packages目录下生成llm.egg-link文件,内容为本地llm代码仓库的绝对路径。如果该文件缺失,Python就无法找到模块。
解决方法:回到llm代码根目录,重新执行安装命令:pip install -e '.[test]'执行时留意输出,确认有
Obtaining file:///你的本地llm仓库路径的提示,说明安装路径正确。验证pytest是否使用虚拟环境中的版本
即使激活了虚拟环境,系统全局的pytest可能被优先调用,导致使用全局Python环境,自然找不到虚拟环境里的可编辑模块。
解决方法:- 确保虚拟环境已激活:
# Linux/macOS source venv/bin/activate # Windows venv\Scripts\activate - 检查pytest的路径:
输出应指向虚拟环境的which pytest # Linux/macOS where pytest # Windowsbin(或Scripts)目录。如果不是,在虚拟环境内重新安装pytest:pip install pytest
- 确保虚拟环境已激活:
检查本地代码目录结构
确认执行pip install -e命令时所在的目录是llm代码的根目录(即包含llm子文件夹的目录,该子文件夹内要有__init__.py等核心代码文件)。如果在错误目录执行安装,可编辑链接会指向错误路径,导致模块无法识别。
解决方法:切换到llm代码根目录,重新执行安装命令。临时手动添加路径排查
如果以上方法都无效,可以在conftest.py开头添加代码,手动将本地代码目录加入Python路径,验证是否能解决问题:import sys from pathlib import Path # 将当前文件的父目录(即代码根目录)加入sys.path sys.path.insert(0, str(Path(__file__).parent))如果这样能正常运行测试,说明可编辑安装的链接未生效,回到第一步重新执行安装命令。
清除pip缓存后重新安装
偶尔pip缓存会导致安装异常,清除缓存后重新安装可解决问题:pip cache purge pip install -e '.[test]'
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

