Python 如何创建 python 虚拟环境 venv?

namedlock · 2023年03月10日 · 最后由 ramihoo 回复于 2023年03月13日 · 7175 次阅读

venv 是什么

venv是 Python 3 中的一个内置模块,它提供了一种创建 Python 虚拟环境的方法。虚拟环境是一种隔离 Python 环境的机制,它可以让我们在同一台机器上使用不同的 Python 解释器和库,而不会互相干扰。在 Python 2 中,可以使用第三方工具如virtualenv来创建虚拟环境,达到与venv相似的效果。

如果不使用虚拟环境,可能会遇到以下问题:

  1. 版本冲突:不同的 Python 工程可能会依赖不同的 Python 版本或第三方库版本,如果不使用虚拟环境,就可能会导致版本冲突,从而导致程序无法正常运行。
  2. 难以维护:在没有虚拟环境的情况下,可能需要手动安装和管理多个 Python 版本和第三方库版本,这会增加开发和维护的难度。
  3. 难以迁移:如果需要将程序从一台计算机迁移到另一台计算机,可能需要手动安装和配置所需的 Python 环境和第三方库,这会增加迁移的难度和风险。

使用虚拟环境可以解决上述问题,它提供了一种隔离 Python 环境的机制,可以在不同的 Python 工程中使用不同的 Python 版本和第三方库版本,从而避免版本冲突,简化开发和维护,以及方便迁移。因此,建议在开发 Python 程序时使用虚拟环境。

如何使用 venv

创建虚拟环境

要创建一个虚拟环境,需要使用venv模块提供的venv命令。例如,要在当前目录下创建一个名为myenv的虚拟环境,可以运行以下命令:

python3 -m venv myenv

激活虚拟环境

然后通过以下方式激活虚拟环境:

  • 在 Linux 或 macOS 中,运行以下命令: source myenv/bin/activate 一旦激活了虚拟环境,我们就可以使用pip安装所需的第三方库,并在该虚拟环境中运行 Python 程序。当完成工作后,可以使用deactivate命令退出虚拟环境。

在使用 venv 前,我本地安装的 requests 库如下:

➜  python_test pip3 list | grep requests
requests               2.28.1

创建一个虚拟环境后,激活虚拟环境后,就多了 (myenv) ➜提示符,同时使用 pip3 list 来查看是没有安装 requests 库的

python3 -m venv myenv
➜  python_test source myenv/bin/activate
(myenv) ➜  python_test pip3 list | grep requests
WARNING: You are using pip version 20.2.3; however, version 23.0.1 is available.

然后我安装一个 requests 库,发现安装了一个更新的版本 2.28.2

(myenv) ➜  python_test pip3 install requests
Collecting requests
  Using cached requests-2.28.2-py3-none-any.whl (62 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in ./myenv/lib/python3.8/site-packages (from requests) (3.1.0)
Requirement already satisfied: certifi>=2017.4.17 in ./myenv/lib/python3.8/site-packages (from requests) (2022.12.7)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./myenv/lib/python3.8/site-packages (from requests) (1.26.14)
Requirement already satisfied: idna<4,>=2.5 in ./myenv/lib/python3.8/site-packages (from requests) (3.4)
Installing collected packages: requests
Successfully installed requests-2.28.2
WARNING: You are using pip version 20.2.3; however, version 23.0.1 is available.

退出虚拟环境

执行 deactivate 命令

(myenv) ➜  python_test deactivate
➜  python_test

由于虚拟环境提供了一种隔离 Python 环境的机制,因此不同的工程可以在同一个虚拟环境中使用不同的 Python 版本和第三方库,而不会相互干扰。但是 venv 本身并不涉及 Python 版本的管理,它只是用于创建和管理 Python 虚拟环境。
要管理不同的 Python 3 版本,我们需要安装多个版本的 Python,并使用不同的路径来区分它们。

结语

最后,欢迎大家关注,谢谢。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册