Python 使用venv时是否需要激活虚拟环境

Python 使用venv时是否需要激活虚拟环境,python,python-venv,Python,Python Venv,在Mac上使用Python 3.7.0。尝试使用python 3.4之后添加的venv模块 我使用python3-venv-m path/to/my/dir设置虚拟环境-我的问题是我是否需要激活此虚拟环境才能使用? 这句话似乎暗示我不需要这么做 您不需要特别激活环境;激活只是将虚拟环境的二进制目录预先添加到您的路径中,以便“python”调用虚拟环境的python解释器,您可以运行已安装的脚本,而无需使用它们的完整路径。但是,安装在虚拟环境中的所有脚本都应该可以在不激活它的情况下运行,并自动使用

在Mac上使用Python 3.7.0。尝试使用python 3.4之后添加的
venv
模块

我使用
python3-venv-m path/to/my/dir
设置虚拟环境-我的问题是我是否需要激活此虚拟环境才能使用?

这句话似乎暗示我不需要这么做

您不需要特别激活环境;激活只是将虚拟环境的二进制目录预先添加到您的路径中,以便“python”调用虚拟环境的python解释器,您可以运行已安装的脚本,而无需使用它们的完整路径。但是,安装在虚拟环境中的所有脚本都应该可以在不激活它的情况下运行,并自动使用虚拟环境的Python运行


如果我不必激活,那么将venv预先添加到二进制目录有什么好处?无论venv是否正常工作,都会发生这种情况吗?

激活VirtualNV会给您带来方便。它从来都不是必需的

甚至对于配置为使用
#运行的脚本/usr/bin/env python
,(在路径上查找
python
可执行文件),您可以手动更新
path
环境变量:

$ PATH="/path/to/venv/bin" some_script
激活会使
路径
更新保持不变,直到您再次停用,这很方便

例如,我经常在任何时候使用几个VirtualNV。其中一些只是为了安装一些命令行工具,我已经将它们符号链接到我的
~/bin/
目录中,另一个是Jupyter笔记本的家,另外两个用于快速验证不同Python版本中的代码段,并访问第三方库。我没有激活任何一个


当您没有激活virtualenv时,所发生的一切就是您的terminal
PATH
变量没有更新以首先放入virtualenv的
bin
目录,因此当您在终端中输入
python
pip
或其他没有任何路径的脚本时,shell将找到一个不同的Python二进制文件来运行。通过提供该命令的完整路径,您始终可以使用virtualenv
bin/
目录中的任何命令。

不,您没有。在Python3.7中,没有比在早期版本中更需要这样做的了。我认为关键短语是“安装在虚拟环境中的脚本应该在不激活它的情况下运行”。