Python 虚拟环境是“一个自包含的目录树,其中包含特定版本 Python 的 Python 安装,以及许多附加包”(来自官方文档的引用)。
提示必要的xkcd漫画:
故事的寓意:有意识地使用 Python 虚拟环境进行组织,尽量不要污染您的系统 Python 环境,否则会变得混乱。
由于潜在的混乱,已经出现了许多工具来帮助管理这些虚拟环境。本文描述并演示了一些。
如何使用本指南
本指南涉及各种问题和受众,反映了我自己脑海中存在的声音。
- 实际上,虚拟环境如何工作?查看摘要_venv
- 我选择的工具如何用于管理虚拟环境?阅读完关于 后,在目录中
venv
找到您的工具以获得简要介绍。(或者建议我在评论中错过的工具!) - 有哪些工具可用于管理虚拟环境?阅读整篇文章!首先扫描目录。在评论中提出批评和建议。
- 哪些工具适合我?可能是virtualenv,Poetry,或者可能是Conda。我在最后进行了这样的辨别。
使用venv
,包含在 Python 中
旁注:该命令是本节中记录的本
virtualenv
机命令的“超集” 。python -m venv
实际上,如果您想要 的速度和附加功能virtualenv
,只需替换您在下面virtualenv
看到的任何地方。python -m venv
请参阅下面的 virtualenv 使用和安装说明。
值得庆幸的是,该模块venv通常pip
包含在您的 Python 安装中。要在目录中创建虚拟环境.venv
,请尝试以下操作:
<span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code>python <span style="color:var(--syntax-error-color)">-m</span> venv .venv
</code></span></span>
要进一步解析它:使用 Python 可执行文件作为您要在虚拟环境中使用的 Python 版本。这可能被称为python
,如上所述,或者它可能是python3
orpython3.8
或python3.9
甚至pypy3
; 你明白了。然后告诉它执行venv
模块,然后是您希望虚拟环境驻留的目录的名称。如上所示,我通常使用名称.venv
,或者为了提高知名度,使用venv
.
应该有一个暂停,然后是一个名为的新目录.venv
,您可以使用ls
or看到该目录dir
(在 Mac 和 Linux 上,由于.
前缀,这将是不可见的,除非您使用ls -a
)。您可以使用任何您喜欢的目录名称来代替.venv
.
如果您看到类似“虚拟环境未成功创建,因为 ensurepip 不可用”或其他发行版荒谬的内容,请按照给出的说明或阅读如何安装pip和venv.
激活虚拟环境
现在您可以使用以下命令激活虚拟环境
<span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-text-color)">source</span> ./venv/bin/activate
</code></span></span>
或者,在 Windows 上:
<span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-error-color)">.</span><span style="color:var(--syntax-text-color)">\venv\Scripts\Activate.ps1</span>
</code></span></span>
如果不使用 Bash 或 Powershell,您可能会在./venv/bin
or.\venv\Scripts
目录中查看 CMD、fish 或 csh 的其他选项。
激活后,命令提示符应更改为以虚拟环境目录的名称为前缀。就像是:
<span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-error-color)">(</span>.venv<span style="color:var(--syntax-error-color)">)</span> <span style="color:var(--syntax-error-color)">[</span>default <span style="color:var(--syntax-text-color)">command </span>prompt] $
</code></span></span>
那(.venv)
(或任何你命名的)是你已经激活你的虚拟环境的标志。在您重