【问题标题】:Do I need to activate virtual environment when using venv使用venv时是否需要激活虚拟环境
【发布时间】:2018-12-17 09:19:17
【问题描述】:

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

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

documentation 似乎暗示我不需要?

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

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

【问题讨论】:

  • 不,你没有。在 Python 3.7 中,您在早期版本中不需要这样做。
  • 我认为关键短语是“安装在虚拟环境中的脚本应该可以在不激活的情况下运行”。

标签: python python-venv


【解决方案1】:

激活 virtualenv 为您带来便利。从来不需要。

即使对于配置为使用#!/usr/bin/env python 运行的脚本(它会在您的路径上查找python 可执行文件),您也可以手动更新PATH 环境变量: p>

$ PATH="/path/to/venv/bin" some_script

激活会使PATH 更新一直持续到您再次停用,这很方便。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多