已激活virtualenvwrapper虚拟环境但poetry仍自行创建虚拟环境如何解决
问题排查及解决步骤
- 调整poetry虚拟环境优先级配置
poetry默认不会优先识别当前已激活的第三方虚拟环境,需手动开启对应配置:
运行poetry config virtualenvs.prefer-active-python true开启全局配置,执行完成后运行poetry config --list确认该配置项值为true即可。如果执行上述配置命令报错,说明你的poetry版本较低,先运行poetry self update升级到最新稳定版后再操作。 - 排查poetry安装来源的干扰
如果你是通过conda环境的pip安装的poetry,poetry本身的运行宿主Python版本为conda的3.8.5,会导致版本识别异常。可运行which poetry检查安装路径:
如果输出路径在/opt/anaconda3/bin下,先运行pip uninstall poetry卸载原有版本,再使用pyenv管理的3.7.5环境下的pip重新安装,避免宿主版本干扰。 - 手动绑定指定虚拟环境(可选)
无需调整全局配置的情况下,可直接在项目目录下运行命令手动绑定你提前创建的虚拟环境:poetry env use /Users/siraj/.virtualenvs/venv-quran-srs-375/bin/python
绑定完成后运行poetry env info确认虚拟环境路径、Python版本符合预期后,再执行依赖安装操作即可。 - 检查shell配置优先级
检查你的shell配置文件(.zshrc/.bashrc/.bash_profile)中,pyenv的初始化代码是否写在conda初始化代码之前,避免conda的PATH配置覆盖pyenv的优先级,导致本地Python版本识别异常。
内容的提问来源于stack exchange,提问作者Siraj Samsudeen
相关产品推荐
相关产品推荐

