python虚拟环境之virtualenv
1、虚拟环境1.1 基本概念Venv虚拟环境是Python用来创建和管理虚拟环境的模块该模块供你用来存放你的Python脚本以及安装各种Python第三方模块模块里的环境和本机是完全分开的也就是说你在venv下通过pip安装的Python第三方模块是不会存在于你本机的环境下的。1.2 作用Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响共同使用global library 和 interpreter例如程序A需要某个库的2.0版本而程序B需要同样这个库的3.0版本如果没有虚拟环境的话我们本地只能有这个库的一种版本如果程序B执行代表本地安装的3.0版本的库A就不能成功执行了。1.3 虚拟环境种类工具核心定位主要特点适用场景uv新一代高性能一站式工具速度极快(Rust编写)集环境、包、版本管理于一身功能全面。新项目首选尤其适合追求效率、CI/CD、纯Python项目。venvPython内置的基础工具随Python 3.3一起提供无需额外安装功能基础只负责创建隔离环境。临时脚本、教学演示或在无法安装第三方工具的受限环境中使用。virtualenv第三方基础工具venv的前身和功能超集支持Python 2.7创建环境更快是许多其他工具的基础。需要兼容Python 2.x或需要比venv更灵活功能的旧项目。Poetry现代化依赖与打包工具依赖管理强大有确定性锁文件(poetry.lock)原生支持打包发布到PyPI生态成熟。中大型项目、库的开发喜欢成熟、一体化工作流的团队。conda跨语言环境与包管理擅长管理非Python依赖如CUDA、R语言提供预编译的科学计算包环境隔离独立。数据科学、机器学习项目需要精确控制复杂底层库的场景。Pipenv曾经的官方推荐工具集成了pip和virtualenv使用Pipfile和Pipfile.lock管理依赖但目前社区热度已下降。维护已有的老项目。新项目不建议选用。2、virtualenv搭建2.1 安装pip install virtualenv 如果安装超时则选用vpn或者豆瓣源安装这里使用豆瓣源安装 pip install -i https://pypi.douban.com/simple/ virtualenv2.2 创建虚拟环境新建文件夹用来存放虚拟环境例如D:\software\python\xuni_env在该文件夹下打开命令创建虚拟环境虚拟环境的版本是python的版本 virtualenv myenv 创建指定版本的环境 linux: virtualenv -p /usr/bin/python3.6 myenv windows: virtualenv -p D:\\software1\\python36\\python.exe myenv然后在xuni_env目录下就会多出一个myenv这就是新建的环境。2.3 激活虚拟环境# linux source myenv/bin/activate # windows cd myenv/Scripts # 进入Scripts文件夹下 activate # 运行activate 或者 .\myenv\Scripts\activate注意虚拟环境安装包的时候正常pip安装就行2.4 关闭虚拟环境deactivate2.5 删除虚拟环境rmvirtualenv env13、高级每次开启虚拟环境之前要去虚拟环境所在目录下的 bin 目录下 source 一下 activate这就需要我们记住每个虚拟环境所在的目录。并且还有可能你忘记了虚拟环境放在哪。使用virtualenvwrapper管理你的虚拟环境virtualenv其实他就是统一管理虚拟环境的目录并且省去了source的步骤。3.1 安装3.1.1 Linux安装步骤1安装virtualenvwrapperpip3 install virtualenvwrapper步骤2设置Linux的环境变量每次启动就加载virtualenvwrapper在~/.bashrc中末尾添加入注意python版本export WORKON_HOME~/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh export VIRTUALENVWRAPPER_PYTHON/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV/usr/local/bin/virtualenv然后运行命令source ~/.bashrc3.1.2 Windows安装pip install virtualenvwrapper-win新增系统变量可能会需要重启电脑起作用3.2 相关命令# 列出虚拟环境列表 workon 或 lsvirtualenv # 新建虚拟环境 mkvirtualenv [envname] # 切换虚拟环境 workon [envname] # 删除虚拟环境 rmvirtualenv [envname] # 停止/离开虚拟环境 deactivate # 复制虚拟环境 cpvirtualenv [sorce] [dest] # 导出该环境下所有依赖到requirements.txt文件 pip freeze requirements.txt