Python venv——虚拟环境模块
简介
venv是Python的一个标准库,用于创建和管理虚拟环境。虚拟环境是Python的一个隔离空间,在这个空间中,你可以安装和管理Python包,而不会影响到系统中的其他Python环境。以下是venv的一些主要特性:
- 隔离性:每个虚拟环境都有自己的Python解释器和独立的站点包(site-packages)目录。在虚拟环境中安装或卸载的Python包不会影响到其他虚拟环境,也不会影响到系统级别的Python环境。
- 创建和管理方便:venv提供了简单的命令来创建、激活和关闭虚拟环境。你可以在需要的时候快速创建一个新的虚拟环境,进行包的安装和测试,然后在不需要的时候将其删除。
- 版本管理:使用虚拟环境,你可以在不同的环境中安装和使用不同版本的Python包,这对于开发和测试兼容性问题非常有用。
在许多Python项目中,虚拟环境都是一个重要的工具,它可以帮助开发者在保持系统整洁的同时进行开发和测试工作。在使用venv时,通常会配合使用pip进行包的安装和管理,以及使用requirements.txt文件来记录项目的依赖关系。
前置知识
- Python:venv 是 Python 的一个模块,因此你需要对 Python 有基础的了解,包括 Python 的语法、数据结构、函数、模块等。
- 命令行:使用 venv 主要是通过命令行操作的,因此你需要熟悉你的操作系统的命令行界面。如果你使用的是 Windows,你需要了解 PowerShell 或者命令提示符;如果你使用的是 macOS 或者 Linux,你需要了解终端(Terminal)。
- 包管理:理解 Python 的包管理工具 pip 可以帮助你更好地理解 venv。pip 是 Python 的一个包管理工具,用于安装和管理 Python 包。
创建虚拟环境
在 Windows 系统中,我们也可以使用 venv 模块创建虚拟环境。这里是如何操作的:
首先,打开命令提示符(cmd)。然后,输入以下命令:
|
这里的 “/path/to/new/virtual/environment” 是你要创建新虚拟环境的目录路径。
这条命令的工作原理是这样的:
python -m 是调用 Python 并使用 -m 选项来运行后面指定的模块。在这个例子中,我们运行的是 venv 模块。
venv 是 Python 的一个内置模块,用于创建虚拟环境。
/path/to/new/virtual/environment 是你想要创建的新虚拟环境的路径。在这个路径下,Python 会创建一个新的目录,并在这个目录下设置好虚拟环境。
实际上,将虚拟环境(venv)放在项目目录中是一种非常常见的做法,这样做可以确保项目的依赖性更好地被隔离和管理。
例如,如果你的项目目录是 “my_project”,你可以在这个目录中创建一个名为 “venv” 的虚拟环境,命令如下:
|
上述命令首先将当前目录切换到 “my_project”,然后在这个目录下创建一个名为 “venv” 的虚拟环境。这样,这个虚拟环境就和你的项目在同一个目录下了。
后面那个 venv 相当于 .\venv, 这两个是一样的。
当你运行 python -m venv .\myenv 命令时,如果 “myenv” 文件夹不存在,那么 venv 会自动创建它。所以你不需要提前手动创建 “myenv” 文件夹。如果 “myenv” 文件夹已经存在,venv 会在这个已经存在的文件夹中创建虚拟环境。但是请注意,如果 “myenv” 文件夹已经存在并且其中包含一些文件,那么这些文件可能会被 venv 的创建过程所覆盖或删除。因此,最好确保 “myenv” 文件夹在创建虚拟环境之前是空的。
当你创建一个新的虚拟环境(如venv)时,它会包含一个新的、独立的Python解释器,这个解释器的版本与你创建虚拟环境时使用的Python解释器的版本一致。这意味着虚拟环境中的Python是独立的,不会与系统其他地方的Python冲突。
运行结果
|
激活虚拟环境
在Windows上,你可以通过命令行来激活你的虚拟环境。首先,确保你的命令行的当前工作目录是你的虚拟环境所在的目录。然后,执行如下命令:
|
这条命令会激活名为 “venv” 的虚拟环境。在激活虚拟环境后,你的命令行提示符应该会改变,前面会加上虚拟环境的名字,看起来应该像这样:
|
前面的 (venv) 就表示 “venv” 虚拟环境当前正在被使用。此时,你在命令行中执行的任何 Python 和 pip 命令都将在这个虚拟环境中运行。
当你想退出虚拟环境时,只需要在命令行中输入 deactivate,然后按回车键即可。
使用虚拟环境
在虚拟环境中安装 Python 包时,我们需要首先确保虚拟环境已被激活。虚拟环境激活后,你的命令行提示符将显示当前激活的虚拟环境的名字。
例如,如果你的虚拟环境的名字是 myenv,在 Windows 系统中,激活虚拟环境后的命令行提示符可能会看起来像这样:(myenv) C:\Users\YourUsername>
这时,你可以使用 pip 命令来安装 Python 包,如 numpy 和 pandas。运行以下命令:
|
由于你已经在虚拟环境中,pip 命令会将这些包安装到当前激活的虚拟环境,而非全局环境。你可以通过运行 pip list 命令来查看已在虚拟环境中安装的 Python 包。你应该能在列表中看到 numpy 和 pandas。
这种方式允许每个项目有其自己的独立环境,并可以安装不同版本的包,而不会影响其他项目或全局 Python 环境。这对于管理项目的依赖性和避免版本冲突非常有帮助。
退出虚拟环境
退出虚拟环境非常简单,只需要在命令行中输入 deactivate 命令即可。在 Windows 中,你可以在命令行提示符中直接输入此命令:
|
运行该命令后,你将从当前激活的虚拟环境中退出,并返回到全局 Python 环境。你可以通过查看命令行提示符来确认是否已退出虚拟环境。如果虚拟环境名称不再显示在命令行提示符中,那么你已成功退出虚拟环境。
请注意,退出虚拟环境并不会删除或影响虚拟环境中的任何内容。你可以随时通过激活命令重新进入虚拟环境,继续在其中工作。