天天看点

实用小技巧:三分钟教会在python使用虚拟环境(virtualenv)

作者:huaiyi

简介

virtualenv可以通过搭建虚拟且独立的 Python 环境,将我们所需的依赖安装进去。这样就可以使每个项目环境与其他项目独立开来,保持环境的干净,同时也解决了包冲突的问题

注意win使用虚拟环境时最好使用管理员cmd,激活虚拟环境需要执行的命令activate,就是执行虚拟环境下Scripts目录中的activate文件,以及一系列批处理文件,powershell即使是管理员也执行不了这个文件,所以无法激活虚拟环境,也就使用不了虚拟环境

安装 配置虚拟环境(使用完如果不需要虚拟环境了,直接删除虚拟环境所在目录即可)

pip install virtualenv # 安装

D:\> mkdir my_venv 创建一个存放虚拟环境文件的目录#

目录: D:\

Mode LastWriteTime Length Name

---- ------------- ------ ----

d----- 2022/6/30 11:32 my_venv

D:\> cd my_venv # 进入目录

virtualenv venv # 创建名为venv的虚拟环境,venv 可替换为别的虚拟环境名称,执行后,在本地会生成一个与虚拟环境同名的文件夹,包含 Python 可执行文件和 pip 库的拷贝,可用于安装其他包

virtualenv --system-site-packages venv # 创建时使用系统中自带第三方库

virtualenv -p /usr/bin/python2.7 venv # 指定虚拟环境所使用python版本(前提,系统中已安装)

D:\my_venv> virtualenv fing # 将会在D:\my_venv>中创建一个名为fing的虚拟环境

created virtual environment CPython3.10.4.final.0-64 in 1074ms

creator CPython3Windows(dest=D:\my_venv\fing, clear=False, no_vcs_ignore=False, global=False)

seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\mi\AppData\Local\pypa\virtualenv)

added seed packages: pip==22.1.2, setuptools==62.6.0, wheel==0.37.1

activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

D:\my_venv\fing> cd Scripts # 进入其下Scripts目录

D:\my_venv\fing\Scripts> activate # 激活虚拟环境

(fing) D:\my_venv\fing\Scripts>pip3 list # 注意终端发生了变化

Package Version

---------- -------

pip 22.1.2

setuptools 62.6.0

wheel 0.37.1

(fing) D:\my_venv\fing\Scripts>deactivate # 关闭当前虚拟环境

D:\my_venv\fing\Scripts>

相关命令(注意在虚拟环境的Scripts目录下执行,这些命令都是虚拟环境的Scripts目录下的bat批处理文件)

lsvirtualenv -b # 列出虚拟环境

workon [虚拟环境名称] # 切换虚拟环境

lssitepackages # 查看环境里安装了哪些包

cdvirtualenv [子目录名] # 进入当前环境的目录

cpvirtualenv [source] [dest] # 复制虚拟环境

rmvirtualenv [虚拟环境名称] # 删除虚拟环境

不在主机安装python并创造需要的 python以及相关库 的虚拟环境

注意:可以在某种对python版本存在要求的时候使用,或者对 第三方依赖包 有要求的时候使用,或者在想保持纯净python环境时使用,以及最重要的一点,可移植,相关python虚拟环境只要配置好后,那么将虚拟环境的文件夹移动到另一台电脑上,并在此电脑安装上virtualenv,直接激活就可以使用

python官网找到对应版本zip包,注意初始状态包中有python.exe文件,下载后解压,执行如下类似的命令,将创造对应python版本的虚拟环境

virtualenv -p D:\my_venv\python-3.7.7-embed-amd64\python.exe venv

python2的win安装包无zip,所以需要python2的虚拟环境,还是需要先安装,然后指定python2的exe文件,创造虚拟环境