GitHub Actions测试失败:Poetry未正确安装Pandas依赖
解决GitHub Actions中Poetry未加载Test组依赖导致Pandas缺失的问题
问题背景
在GitHub Actions推送代码时,测试步骤提示ModuleNotFoundError: No module named 'pandas',但依赖安装日志显示Poetry已成功安装Pandas。pyproject.toml中Pandas被归类在test分组依赖下,且手动添加pip install pandas后测试可正常通过。
核心原因
- Poetry默认安装范围限制:
poetry install默认仅安装[tool.poetry.dependencies]下的主项目依赖,不会自动加载test、dev等自定义分组的依赖,必须显式指定才能安装这些分组的包。 - 测试环境未关联虚拟环境:直接用
python -m unittest调用系统Python解释器,而Poetry安装的依赖仅存在于它创建的虚拟环境中,导致测试无法读取到Pandas。
修复方案
方案1:安装时显式包含Test分组依赖
修改GitHub Actions的依赖安装步骤,给poetry install添加--with test参数,确保Test组的依赖被安装到当前环境:
- name: Install dependencies run: | pip install poetry poetry install --with test python -m pip install -e .
方案2:通过Poetry虚拟环境执行测试
保持依赖安装步骤不变,修改测试步骤使用poetry run命令,自动激活Poetry虚拟环境后运行测试,确保使用的是包含Pandas的环境:
- name: Run tests run: poetry run python -m unittest discover tests
验证
修改配置后重新推送代码,GitHub Actions的测试步骤将正常识别Pandas,无需手动执行pip install pandas。
内容的提问来源于stack exchange,提问作者user15675885
相关产品推荐
相关产品推荐

