已安装requests模块但IntelliJ运行Poetry项目仍提示找不到
问题描述
我有一个Poetry项目并已配置venv环境,pyproject.toml依赖配置如下:
[tool.poetry] name = "..." version = "0.1.0" description = "" authors = ["..."] readme = "README.md" [tool.poetry.dependencies] python = "^3.8" boto3 = "^1.26.78" requests = "^2.28.2" black = "^23.1.0" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"
执行poetry shell和poetry install后,poetry show显示requests 2.28.2已安装,但在IntelliJ中指定该Poetry venv运行项目时,仍出现错误:
ModuleNotFoundError: No module named 'requests'
解决思路
确认IntelliJ选中的虚拟环境路径正确
打开File → Project Structure → Project Settings → Project,检查Python interpreter是否指向Poetry创建的venv目录下的可执行文件:- Mac/Linux路径示例:
项目根目录/.venv/bin/python - Windows路径示例:
项目根目录\.venv\Scripts\python.exe
同时检查Run/Debug Configurations中的运行配置,确认其使用的interpreter与上述一致。
- Mac/Linux路径示例:
触发IntelliJ重新索引项目
执行File → Invalidate Caches...,勾选"Invalidate and Restart"选项后重启IDE。重启后IDE会重新扫描项目依赖和虚拟环境,修复可能的索引异常。验证虚拟环境内的实际依赖状态
进入Poetry shell后执行pip list,确认requests是否出现在依赖列表中。若未找到,执行poetry install --no-root强制重新安装所有依赖,确保依赖正确安装到目标venv中。手动添加依赖目录到IntelliJ Libraries
找到venv的site-packages路径(示例:.venv/lib/python3.8/site-packages),打开File → Project Structure → Libraries,点击"+"号添加该目录,让IDE直接识别其中的第三方包。检查Python版本匹配性
确认IntelliJ使用的Python版本与pyproject.toml中指定的^3.8完全匹配,避免因版本不一致导致依赖被安装到了其他Python环境中。
内容的提问来源于stack exchange,提问作者briba

