MacOS下Poetry安装后遇ModuleNotFoundError但模块已安装的问题
问题分析
核心矛盾:执行poetry install后运行代码抛出ModuleNotFoundError: No module named 'loguru',但pyproject.toml已声明该依赖;同时Virtualenv信息显示Python版本为3.13.2(路径/可执行文件为NA),与系统指定的3.11.11不匹配——虚拟环境未正确关联目标Python版本,依赖安装到了无效/错误环境。
解决步骤
- 清理无效虚拟环境
- 执行
poetry env info,查看Virtualenv区块的Path(若显示NA,直接定位项目根目录下的.venv文件夹) - 删除该虚拟环境:
# 若有明确路径 rm -rf <虚拟环境路径> # 或直接删除项目内的.venv rm -rf .venv
- 执行
- 强制绑定目标Python版本创建新环境
- 先确认目标Python可执行文件路径有效:
/opt/miniconda3/bin/python --version,确保输出为3.11.11 - 让Poetry绑定该版本创建虚拟环境:
poetry env use /opt/miniconda3/bin/python
- 先确认目标Python可执行文件路径有效:
- 重新安装依赖
- 删除旧锁文件:
rm poetry.lock - 重新安装所有依赖:
poetry install
- 删除旧锁文件:
- 验证环境与依赖
- 执行
poetry env info,确认Virtualenv区块的Python版本为3.11.11,路径和可执行文件正常显示 - 通过Poetry运行代码:
poetry run python <你的脚本文件名>,或激活环境后运行:poetry shell,再执行脚本
- 执行
额外排查(若用pyenv)
- 确保pyenv已安装3.11.11:
pyenv install 3.11.11 - 在项目根目录锁定Python版本:
pyenv local 3.11.11 - 让Poetry使用pyenv指定的版本:
poetry env use python
内容的提问来源于stack exchange,提问作者Gwilym
相关产品推荐
相关产品推荐

