在GitHub Actions运行器中为何出现“No module named requests”错误?
解决Poetry虚拟环境中找不到requests的问题
问题原因
你用pip install requests安装的requests包在系统Python环境里,而poetry run pytest会启动Poetry创建的独立虚拟环境——这个环境和系统环境完全隔离,所以找不到requests模块。
解决方案
方案1:通过Poetry管理requests依赖(推荐)
- 在本地项目里执行对应命令,把requests加入项目依赖:
- 生产环境需要的话:
poetry add requests - 仅测试环境需要的话:
poetry add --dev requests
- 生产环境需要的话:
- 把更新后的
pyproject.toml和poetry.lock文件提交到GitHub仓库。 - 修改GitHub Actions的安装步骤,删掉单独的
pip install requests命令,更新后的步骤如下:- name: Install dependencies run: | python -m pip install --upgrade pip pip install poetry if [ -f pyproject.toml ]; then poetry install; fi
方案2:临时在Poetry虚拟环境中安装requests(不推荐)
如果不想修改项目依赖,可以在安装步骤里用poetry run调用pip,把requests装到Poetry的虚拟环境中:
- name: Install dependencies run: | python -m pip install --upgrade pip pip install poetry if [ -f pyproject.toml ]; then poetry install; fi poetry run pip install requests
注意:这种方式不会把requests记录到项目依赖文件里,后续重新执行
poetry install时可能会丢失该依赖,只适合临时场景。
内容的提问来源于stack exchange,提问作者Benjamin Geoffrey
相关产品推荐
相关产品推荐

