Poetry环境中python与python3路径不一致引发ModuleNotFoundError
问题解答
这不属于正常行为,Poetry激活虚拟环境后,python命令理应指向虚拟环境内的Python解释器。出现该问题的核心原因是系统中python未关联到python3的软链接,导致虚拟环境激活后,python仍指向系统级Python,而非虚拟环境内的版本。
可通过以下步骤排查修复:
- 在项目目录下执行
ls -la .venv/bin/python,查看虚拟环境内的python是否为指向python3的软链接。若不是,手动创建:ln -s .venv/bin/python3 .venv/bin/python - 检查shell配置文件(如
~/.bashrc、~/.zshrc)是否存在python别名设置(比如alias python=python2),若有则注释或修改为指向python3 - 退出当前
poetry shell,重新进入后执行which python,验证是否已指向虚拟环境内的解释器
你之前遇到的ModuleNotFoundError,本质就是用系统python执行时,无法读取虚拟环境中安装的Django依赖,只有调用虚拟环境的python3(或修复后的python)才能正常识别。
内容的提问来源于stack exchange,提问作者PolarBear10
相关产品推荐
相关产品推荐

