Python 项目开启,这个错千万不能犯

开始一个 Python 项目?作为开发人员,您经常会发现自己同时处理多个项目。如果您是这种情况,那么虚拟环境就是您的朋友。它们能够帮助您在处理多个 Python 项目时,克服包冲突和依赖方面的难题。

在Python 编程的上下文中,虚拟环境意味着一个独立的位置,允许您为Python 项目维护单独和隔离的环境。激活时,它会对您的终端环境进行调整,以使用该隔离的 Python 设置。虚拟环境允许您使用多个版本的 Python 和其他包,而不会相互冲突。此过程在 Windows、Linux 和 macOS 等操作系统中是一致的。

要使用虚拟环境,您首先要创建它,激活它,在其中为您的项目安装必要的包,并且当您完成项目工作时,最后停用环境。(我稍后将介绍所有步骤。)

当您首次创建虚拟环境时,它将会在您的项目目录里创建一个新的文件夹。虚拟环境存在于这个文件夹中。Python 解释器的副本和一些必要的文件放置在这个文件夹中。此副本充当您项目的主要 Python 安装程序。它还存储一个 Scripts(Windows)或 bin(Linux)文件夹,其中包含激活和停用脚本,因此您可以在全局 Python 和隔离版本之间切换。

激活环境后,您的 shell 环境会发生变化,使命令行使用虚拟环境中的 Python 解释器和库。在幕后,环境的PATH变量将会被更新。虚拟环境的“bin”(Windows 上的“Scripts”)文件夹被添加到 PATH 的开头,这告诉您的终端首先查看那里。此外,您的提示符会更改以反映更新。

在虚拟环境中安装 Python 包时,它通常安装在“lib/pythonX.X/site-packages”(Windows 中的“Lib\site-packages”)文件夹中,而不是全局 Python 系统中。每个环境都有自己的“site-packages”目录,其中保存了所有已安装的库和依赖项。这使每个项目相互隔离,并且不会与其他项目或全局包发生冲突。

假设您同时处理多个Python 项目。其中一个项目有点旧。两个项目都需要 Django 模块。然而,旧项目需要 Django 版本 3,而较新的项目需要 Django 版本 4。起初,您可能考虑在系统上安装两个版本。

然而,这是不可能的,如果您尝试这样做,您将收到错误。因此,您不能同时安装同一包的两个不同版本。即使您设法安装了,后安装的版本也会覆盖先前安装的版本。此外,当您将一个包导入到您的 Python 代码中时,您无法定义使用哪个版本。所以,这是您一次只能拥有一个包版本的又一个原因。

现在,如果您想在两个项目上工作,您得先安装一个 Django 版本,在这个项目上干活儿,然后把它卸载掉,再安装另一个版本,切换到另一个项目,依此类推。这一点都不实际。这只是一个小例子。您可能会面临更多像这样复杂的依赖冲突。

虚拟环境解决了这个问题。您可以为每个项目创建一个新环境,安装所需的包和依赖项,而不必担心任何冲突和错误。这是个很快的例子,我给两个不同的项目装了两个不同版本的 NumPy。

对于这个示例,我为两个独立的项目设置了两个虚拟环境。然后我成功安装了两个不同版本的 NumPy。在这里,projectA 使用的是 2.1.1 版本,而 projectB 使用的是 2.0.0 版本。

使用虚拟环境还有一个好处,就是当您想跟别人合作或者分享您的项目的时候。通过使用“requirements.txt”文件,您可以定义所有的依赖项,然后可以在另一台机器的新环境中重新创建。

虚拟环境就是您创建的一个目录,您把所有项目文件和相关的包都存放在里面。为了演示,我首先要创建一个目录来设置环境。

mkdir programming

cd programming

在这个新创建的目录中,我将创建一个虚拟环境。

在大多数 Linux 发行版中,Python 通常是预先安装的。如果没有,您可以在 Linux 上安装 Python,使用您的包管理器。然后使用此命令安装虚拟环境:

sudo apt 安装 python3-venv

之后,您可以创建虚拟环境。您需要为环境命名。然后运行以下命令:

python3 -m venv my_virt_env

就我而言,我将其命名为'my_virt_env'。您可以选择任何合适的名称。

您首先需要做的是在 Windows 上安装 Python。安装时,确保将 Python.exe 添加到系统路径。导航到您想要创建虚拟环境的文件夹。打开您首选的命令行工具,然后运行:

python -m venv myenv

创建虚拟环境是不够的。您需要使用文件夹内的激活文件来激活它,从而开始使用。如果您成功激活了虚拟环境,您会注意到命令行提示符开头括号内的文件夹名称。

要在 Linux 上激活虚拟环境,请运行:

来源 my_virt_env/bin/activate

记住使用您为虚拟环境所使用的相同目录名称。

现在您已激活虚拟环境,可以在其中安装 Python 包,如下所示:

python -m pip 安装 包名称

一旦您安装了一些包,可以使用此命令检查它们的版本:

pip 列出

如果您想退出虚拟环境,那么运行:

deactivate

括号内的环境名称应当从命令行提示符中消失。

要在 Windows 上激活环境,运行:

myenv\Scripts\activate # CMD

.\myenv\Scripts\Activate.ps1 # PowerShell

要在这个环境中安装一个包,请使用此命令:

python -m pip 安装 package_name

您可以通过运行以下命令列出已安装的包:

pip 列表

如果您想要退出虚拟环境,请运行:

deactivate

当您停用虚拟环境时,就会返回到全局 Python 设置。

设置好虚拟环境后,您就可以开始 用 Python 编码 而不必担心不同的包版本、冲突和错误。对于本指南,我使用了 venv 工具。还有其他工具,如 Virtualenv 和 Conda。您可以随意探索它们。如果您是 Python 新手, 从基础开始 并构建您的第一个项目。