激活 python 虚拟环境后,输入 `python` 仍然会在 PATH 中获取版本
After activate a python virtual environment, typing `python` still get me the version in PATH
我正在使用 windows 7. 我有多个 python 虚拟环境。假设我将 venv_1
添加到系统 PATH。在命令行中,假设我激活了另一个venv_2
,现在提示行显示
(venv_2) C:\>
但是如果我在这里输入 python
,它仍然会在 venv_1
中运行 python。
这是预期的行为吗?
这不是预期的行为,但这可能意味着您在设置虚拟环境或激活虚拟环境时犯了错误。
要确定 运行 的版本,请尝试 运行ning:
where python
无论结果列表中的顶部项目是什么,都将是 Python Windows 的副本。如果你是对的,它确实指向 venv_1
,那么一定是 venv_2
.
中的设置有问题
通过运行宁set
,您应该能够看到所有环境变量的列表。检查:
PATH=<long list of directory names, it should have the venv_2\Scripts at the start>
并且:
_OLD_VIRTUAL_PATH=<the same list, without that entry>
正是这种简单的路径更改导致 Windows 首先在您的虚拟环境中找到 Python,然后再在您添加到全局路径的其他虚拟环境中找到它。
请注意,添加一个虚拟环境的 Scripts 文件夹可能不是一个好主意,因为您只想在激活相应的虚拟环境并相应地设置所有环境变量时使用它。
我正在使用 windows 7. 我有多个 python 虚拟环境。假设我将 venv_1
添加到系统 PATH。在命令行中,假设我激活了另一个venv_2
,现在提示行显示
(venv_2) C:\>
但是如果我在这里输入 python
,它仍然会在 venv_1
中运行 python。
这是预期的行为吗?
这不是预期的行为,但这可能意味着您在设置虚拟环境或激活虚拟环境时犯了错误。
要确定 运行 的版本,请尝试 运行ning:
where python
无论结果列表中的顶部项目是什么,都将是 Python Windows 的副本。如果你是对的,它确实指向 venv_1
,那么一定是 venv_2
.
通过运行宁set
,您应该能够看到所有环境变量的列表。检查:
PATH=<long list of directory names, it should have the venv_2\Scripts at the start>
并且:
_OLD_VIRTUAL_PATH=<the same list, without that entry>
正是这种简单的路径更改导致 Windows 首先在您的虚拟环境中找到 Python,然后再在您添加到全局路径的其他虚拟环境中找到它。
请注意,添加一个虚拟环境的 Scripts 文件夹可能不是一个好主意,因为您只想在激活相应的虚拟环境并相应地设置所有环境变量时使用它。