版权声明:本文为博主原创文章,转载请注明出处。 https://www.php.cn/link/b9e4d53a5bd0882b7715b90c7c29aea2
在使用Python编程时,我们通常依赖pip来安装第三方库。然而,由于pip的特性,系统中只能安装每个库的一个版本。然而,在实际的项目开发中,不同的项目可能需要不同版本的第三方库。Python通过虚拟环境提供了解决方案。顾名思义,虚拟环境是一个隔离的Python运行环境,每个项目可以拥有自己的虚拟环境,独立使用pip安装所需的第三方库,避免不同项目间的冲突。本文将介绍创建虚拟环境所需的工具。
在众多工具中,virtualenv是最经典且广泛使用的。它支持Python 2和Python 3。不过,Python 3新增了一个名为venv的工具,将在后面详细介绍。
安装virtualenv的最简单方式是使用pip:
pip install virtualenv
安装后即可创建虚拟环境,指定虚拟环境的路径为ENV:
立即学习“Python免费学习笔记(深入)”;
virtualenv ENV
这将生成
ENV/lib/
、
ENV/include
和
ENV/bin
(Windows系统下为
ENV/Scripts
)几个文件夹,构成一个完整的Python环境。
ENV/lib/
中包含pip等工具,用于安装第三方库,与系统中已安装的Python互不干扰。
在创建虚拟环境时,可以使用
--system-site-packages
参数,使虚拟环境继承主环境的所有第三方库。如果希望虚拟环境独立,则不使用此参数。
要激活虚拟环境,需运行其中的activate脚本(注意Windows和Linux系统的差异):
pathtoenvScriptsactivate
激活后,所有Python命令和pip包都在虚拟环境中,不影响主Python环境。

退出虚拟环境,执行以下命令:
pathtoenvScriptsdeactivate
在Windows系统下,使用Powershell需先更新脚本执行策略:
PS C:> Set-ExecutionPolicy AllSigned
然后运行
activate.ps1
脚本进入虚拟环境。

删除虚拟环境只需删除相应目录即可。
virtualenv还有一些高级特性,如配置文件和扩展能力,详细信息请参考官方文档。
Python 3引入了标准库中的venv,仅适用于Python 3,吸收了virtualenv的优点,但由于其局限性,使用率较低。如果只在Python 3环境中工作,可以考虑使用venv。
在Python 3.3和3.4中,存在一个名为pyvenv的包,但在Python 3.6中已被废弃,建议使用venv。
创建venv虚拟环境与virtualenv类似,指定虚拟环境的目录即可:
python3 -m venv /path/to/new/virtual/environment
venv也会创建同样的目录,并生成一个
pyvenv.cfg
配置文件,记录主环境和虚拟环境的属性:
home = C:Program FilesPython37include-system-site-packages = falseversion = 3.7.0
venv的使用方法与virtualenv类似,扩展性方面可能存在差异,但本文仅介绍基本用法。详细信息请参考官方文档12. Virtual Environments and Packages以及PEP 405。

本文主要介绍了虚拟环境的概念和工具,但Python中还有其他名为XXenv的包容易混淆,下面简要介绍一下。
首先是pyenv,注意它没有带v,不是用于创建虚拟环境的,而是管理多版本Python的工具。pyenv通过在系统环境变量前插入“垫片”路径来实现Python版本的切换,方便在不同版本间切换。
关于pyenv的详细内容,我已在另一篇文章中介绍,这里不再赘述。
pipenv是较新的工具,模仿npm等包管理器,集成了创建虚拟环境和依赖管理功能。pipenv官方网站强调对Windows系统的支持,其作者Kenneth Reitz以开发requests、requests-html等库闻名。pipenv底层使用virtualenv等工具创建虚拟环境,并支持与pyenv配合使用。
pipenv的主要功能包括:
创建虚拟环境。pipenv可以使用系统中已安装的Python创建虚拟环境,并通过一条命令切换到其他版本,自动重新安装依赖包。由于pipenv只能搜索已安装的Python,可能需要与pyenv配合使用。依赖管理。pipenv通过
Pipfile
和lock文件管理依赖,安装第三方包时,依赖信息保存到配置文件中,方便项目在其他环境中快速恢复。此外,pipenv还提供终端彩色输出、显示依赖图等特色功能。由于其实用性,许多公司已开始使用pipenv,例如heroku在部署Python项目时要求使用pipenv。
关于pipenv的详细用法,我也已在另一篇文章中介绍,这里不再重复。
以上就是Python虚拟环境介绍的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/137149.html
微信扫一扫
支付宝扫一扫