Python 使用venv创建虚拟环境
虚拟环境是一种工具,它通过为不同的项目创建隔离的Python虚拟环境来帮助保持不同项目所需的依赖关系。这是大多数Python开发者使用的最重要的工具之一.
虚拟环境的必要性
想象一下这样一个场景:一个web应用被托管在一个具有python开发环境的云主机服务提供商上。网络应用的配置中有一个选项是安装最新版本的Flask网络框架。假设在本地系统上创建的web应用使用的是旧版本的框架,一旦上传到网站上,就会出现版本冲突,因为使用的一些模块在最新版本的Flask中已经贬值了.
使用虚拟环境
上述情况可以用虚拟环境来解决。Python 开发环境可以通过使用一些虚拟环境来进行分离。在这里,一个虚拟环境是一个孤立的 Python 安装,它允许管理依赖关系,并在不影响其他项目的情况下在独立的 Python 项目上工作。当一个虚拟环境被创建时,它从全局 Python 或其他虚拟环境中创建一个单独的文件夹,并将 Python 和一个网站包文件夹以及其他一些文件夹一起复制到其中。对于旧版本的 Python,虚拟机需要安装一个第三方工具,叫做 virtualenv。它已经被集成到较新版本的Python3的模块venv下。要了解更多关于virtualenv的信息 点击这里 .
使用 venv
首先,检查pip的解释器版本是否与系统上的解释器相同,以及Python环境目前所在的位置。要检查Python当前所在的位置,请在终端输入以下命令.
where python
where pip
输出:
C:\Users\GeeksforGeeks\AppData\Local\Programs\Python\Python37\python.exe C:\Users\GeeksforGeeks\AppData\Local\Programs\Python\Python37\Scripts\pip.exe
要创建一个virtualenv,使用以下命令:
python -m venv ./venv
运行这个命令后,一个名为 venv 的目录将被创建。这个目录包含了所有必要的可执行文件,以使用Python项目需要的包。这就是安装Python包的地方。要列出文件夹中的文件,在终端键入以下命令:
dir ./venv
输出:
pip命令仍然指向全局环境。我们需要明确地激活创建的虚拟环境,以配置当前的shell会话使用virtualenv文件夹中的pip命令,而不至于最终在全局环境中安装软件包。为了激活venv,首先将目录改为venv\Scripts.
cd venv\Scripts
改变目录后,输入以下命令.
$ Source venv_name\Scripts> activate
一旦虚拟环境被激活,你的虚拟环境的名称将出现在终端的左侧。这将让你知道该虚拟环境目前处于活动状态。在下面的图片中,名为venv的虚拟环境已经激活.
(注意:如果使用Powershell终端,请尝试用”./activate “代替 “activate”)
Python 解释器也会运行虚拟环境的版本,而不是全局环境的版本。我们可以通过下面的命令验证Python环境当前所在的位置:
where python
输出:
E:\distribution\venv\Scripts\python.exe
C:\Users\GeeksforGeeks\AppData\Local\Programs\Python\Python37\python.exe
这个虚拟环境是一个几乎干净的Python环境。运行pip list可以看到一个包含已安装软件包的列表:
输出:
现在你可以在这个虚拟环境中安装与该项目有关的依赖项。例如,如果你在一个项目中使用Django 1.9,你可以像安装其他软件包一样安装它.
(venv_name)$ pip install Django==1.9
一旦你完成了工作,你可以通过以下命令停用虚拟环境:
(venv_name)$ deactivate
现在你将回到系统默认的Python安装.