使用Poetry在项目目录创建虚拟环境:无法退出全局my_env
问题分析与解决步骤
核心问题
- 退出虚拟环境的命令错误:
source deactivate my_env是错误写法,virtualenv创建的环境退出只需执行deactivate(无需加环境名或source前缀)。 - Poetry的环境复用机制:当你在已激活的虚拟环境(my_env)中运行Poetry命令时,Poetry默认会复用当前环境,忽略
virtualenvs.in-project配置,这才是依赖仍安装到my_env的根本原因。
解决步骤
正确退出全局虚拟环境:
在终端执行:deactivate执行后可以用
which python验证,输出应该是系统默认Python路径,而非my_env下的路径。确认Poetry的项目级环境配置:
进入项目目录,执行以下命令确保配置仅对当前项目生效(避免影响全局Poetry设置):poetry config virtualenvs.in-project true --local可以通过
poetry config --list查看配置,确认virtualenvs.in-project显示为true。重新创建并安装依赖:
如果之前已经在my_env中执行过poetry install,先删除项目目录下的poetry.lock文件,然后执行:poetry install此时Poetry会在项目目录下生成
.venv文件夹,并将依赖安装到这个专属环境中。
额外验证
安装完成后,执行poetry run which python,输出应该指向项目目录下的.venv/bin/python(Linux/macOS)或.venv/Scripts/python.exe(Windows),说明已成功使用项目专属虚拟环境。
内容的提问来源于stack exchange,提问作者Goli
相关产品推荐
相关产品推荐

