日常的生活和学习中难免会遇到需要使用其他师傅编写的Python脚本的时候,但是不同的Python脚本需要的环境往往各不相同,如果统统把所有遇到的软件需要的依赖统统安装到本机上,有时候会出现依赖冲突的问题,因此在这里我们使用Python虚拟环境管理工具venv来解决这个问题;
需要注意的是,venv 工具没法创建不同版本的python环境,也就是如果你用python3.5没法创建python3.6的虚拟环境。如果想要使用不同python版本的虚拟环境,请安装 virtual env包。
Python3.6及以上已经默认安装,Python3.5需要通过系统的包管理工具安装
python -m venv [虚拟环境的名称]
输入命令后,默认会在当前终端所在的目录中创建一个与虚拟环境名称相同的文件夹;
文件夹的目录结构如下,在Scripts文件夹下存在我们启动虚拟环境的脚本,Lib文件夹下则存放当前虚拟环境中安装的依赖;
通常在Windows下我们可能会使用CMD/PowerShell启动Venv虚拟环境,这两种不同的启动方式存在一定的差异,接下来我们先讲解一下如何使用CMD启动Venv虚拟环境;
首先需要使用CMD进入到您创建的虚拟环境的根目录下,然后根据不同的Shell执行对应的脚本;
[虚拟环境的名称]\Scripts\activate.bat
此时就已经成功进入了之前我们创建的虚拟环境,然后可以输入如下命令安装依赖
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
如果需要退出虚拟环境,则输入
deactivate
接下来说一下如何使用PowerShell进入虚拟环境,PowerShell创建虚拟环境的步骤和CMD相同,这里就不再赘述;
PowerShell启动Venv虚拟环境与CMD存在差异的原因如下:
因此我们需要修改PowerShell的执行策略,步骤如下:
首先在虚拟环境的根目录下,打开PowerShell;然后再使用管理员的方式打开PowerShell,只需要执行如下命令,将会弹出一个管理身份的PowerShell终端;
start-process PowerShell -verb runas
然后我们需要在管理员PowerShell中修改执行策略,输入如下指令,然后再输入Y即可
set-executionpolicy remotesigned
然后我们就可以跳转到Venv虚拟环境的根目录下,输入以下命令使用PowerShell打开Venv虚拟环境:
[虚拟环境的名称]\Scripts\Activate.ps1