千家信息网

怎么理解Python的virtualenv虚拟环境

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"怎么理解Python的virtualenv虚拟环境",在日常操作中,相信很多人在怎么理解Python的virtualenv虚拟环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2026年11月02日怎么理解Python的virtualenv虚拟环境

这篇文章主要介绍"怎么理解Python的virtualenv虚拟环境",在日常操作中,相信很多人在怎么理解Python的virtualenv虚拟环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么理解Python的virtualenv虚拟环境"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。

通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目或每个应用各自建立一套"独立、隔离"的Python运行环境。

virtualenv就是用来为每一个项目创建一套"独立隔离"的Python运行环境的工具。

在Python3.4之前,virtualenv需要独立手动安装后,方可执行。之后的版本中,Python自带了一个venv库,执行Python -m venv就可以达到与virtalenv同样的效果。更多的用户习惯上还是使用virtualenv的方式。

Python多解释器环境加上virtualenv创建的多虚拟环境共存在同一操作系统下的情形一般如下图所示:

核心要点是:

  • 一个操作系统下,可以有多个"操作系统级别的"Python解释器;

  • 每个Python解释器有一个指向自己的pip工具,两者一一对应;

  • 通过virtualenv可以虚拟任何一个"操作系统级别的"Python解释器成为一个"虚拟级别"的解释器;

  • 每个"虚拟级别"的解释器又拥有自己独立的pip工具和site-packages。

如果你理解了上面几点,就能明白virtualenv和pip在使用上的区别。

安装virtualenv

下面我安装的是16.0.4版本的virtualenv。更高版本的下面有一定说明,请注意区别。

以windows操作系统为例,要安装virtualenv,建议直接使用当前环境变量下指定的pip,也就是你操作系统默认的那个python版本所绑定的pip,这样方便命令调用。通常如下:

pip install virtualenv

可以在命令行界面中验证安装:where virtualenv

可以看出,这里的virtualenv是作为一个可执行程序,安装在我系统默认的Python36版本下。而我当前操作系统下其实有3个版本的Python:

你或许有疑问?那我要虚拟Python2.7的版本怎么办?在2.7下也装一个virtualenv?不需要的!virtualenv可以指定虚拟的Python解释器版本,只要你本地操作系统下安装了这个版本!

建立虚拟环境

如果自己手动管理所有的虚拟环境,通常会建立一个目录,用来放置所有的虚拟环境。这里:mkdir d:\Python_virtualenvs,然后运行: virtualenv -p c:\Python27\Python2.exe --no-site-packages d:\Python_virtualenvs\for_django

-p: 指定你要虚拟的Python版本,这里选择了本地的python2.7

--no-site-packages:表示在建立虚拟环境时不将原版本中的第三方库拷贝过来,这样就能获得一个纯净的Python环境。

d:\Python_virtualenvs\for_django:表明在该目录下,建立一个叫做for_django的虚拟环境,这样的命名方式,让你一眼就能看出这个虚拟环境是为谁建立的。

我们看一眼文件系统中的情况,从截图中可以看出,环境非常干净!


重要说明

当前时间2020年2月,virtualenv的最新版本,以20.0.0+为例,已经取消了--no-site-packages参数,默认直接使用--no-site-packages模式。有另外一个参数--system-site-packages,作用是可以访问源Python解释器的库,但是要慎用。所以,这里推荐,直接使用默认模式virtualenv -p xxx destination。

ps:windows下,命令行中执行activate.bat命令,貌似在提示符前方没有环境标识符了。

使用虚拟环境

命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令。或者使用绝对路径的方式调用该命令。


注意命令提示符(for_django),它表示你当前在for_django这个虚拟环境内。现在,你可以当做一个正常的Python环境使用。例如运行python命令,又或者使用pip安装第三方库pip install requests。这些都被限制和绑定在for_django这个虚拟环境内,不会对操作系统下本地的Python版本和其它的虚拟环境产生任何的影响!

退出虚拟环境

要退出虚拟环境,只要运行script目录下的deactivate命令就可以了。

要删除虚拟环境,直接删除虚拟环境所在的目录就可以了,注意不要将其它的环境给删了。但是,删除虚拟环境后,所有以前使用该环境的工程都将受到影响。这点很好理解,所以请确保环境不再有需要再删除!

linux操作系统下的使用

对于linux操作系统,使用方法基本类似。只是虚拟环境中的文件路径和脚本调用的方式和windows系统下不太一样,仔细看下图中的bin目录,提供了一个activate脚本,以及一个写入环境变量的deactivate命令。


创建虚拟环境: $ virtualenv -p /usr/bin/python2.7 --no-site-packages my_venv

启动虚拟环境: $ source my_venv/bin/activate 

退出虚拟环境: $ deactivate 

删除虚拟环境: $ rm -r my_venv

Pycharm结合virtualenv的使用

windows下的开发,很多时候使用命令行并不是那么方便,尤其是在Pycharm开发环境下,频繁切换界面也是种负担。实际上Pycharm可以指定解释器,直接将项目的Python解释器设置为你要使用的虚拟环境就行,如下所示:

在settings中:


选择Python:

virtualenv配合pip快速建立开发环境

virtualenv虚拟环境配合pip的freeze功能,可以一次性快捷的将整个环境下的第三方模块全部记录下来: pip freeze > d:\requirements.txt


对应的,也可以用它一次性通过在别的机器上或虚拟环境里,将文件里列出的第三方库安装起来。只需要使用命令:pip install -r requirements.txt

到此,关于"怎么理解Python的virtualenv虚拟环境"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

环境 版本 系统 命令 操作系统 解释器 解释 目录 运行 项目 工具 文件 方式 第三方 级别 学习 独立 管理 不同 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网新科技 深圳市人人互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 深圳九邦互联网科技有限公司 金融科技还是互联网 猪兼强互联网科技 亿账通互联网科技 菲比寻常互联网科技 中正互联网科技招聘 重庆互联网医院沙龙医盟信息科技 互联网5g黑科技有哪些 开一家科技互联网公司需要多少钱 长沙互联网科技 全球科技与互联网公司市值变化 互联网科技收购价值 互联网科技大佬云集 广东猫王互联网科技有限公司电话 北京瑞云互联网科技有限公司 互联网 科技节活动 微视频大赛 哈尔滨大商圈互联网科技有限公司 互联网科技网 互联网科技官网 碳银互联网科技 互联网科技视频 互联网科技博主是什么意思 广东鹅鹅鹅互联网科技有限公司 抖集互联网科技技术咨询 福建互联网展示科技馆设计 广州智享互联网科技
0