关于python3.x:如何创建python-虚拟环境venv

3次阅读

共计 2010 个字符,预计需要花费 6 分钟才能阅读完成。

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,并应用不同的门路来辨别它们。

结语

最初附上我集体公众号:namedlock 的技术笔记,欢送大家关注,谢谢。

正文完
 0