1. 概述
对于python开发者,虚拟环境是十分有必要的,它可以让每个项目甚至脚本配置一个自定义的python解释器环境,最大的好处就是各个环境相互隔离,没有影响。
通常我们创建虚拟环境的方式主要有以下几种:
- virtualenv + virtualenvwrapper创建
- anaconda创建
- Pipenv创建
- Pycharm创建
pycharm创建虚拟环境本质也是借助上面三种方式创建,只不过是pycharm进行了封装),个人感觉使用Pycharm不易于管理所有的虚拟环境,只能根据各个项目单独管理,而上述方法均可从整体管理创建的虚拟环。
本文主讲一下使用virtualenv+virtualenvwrapper与Pycharm创建虚拟环境的过程,接下来首先了解一下virtualenv与conda的区别?
-
virtualenv是虚拟环境管理器,只负责管理(创建、删除等)虚拟环境(注意区别pip是包管理器,负责python包的安装与删除)
-
conda则是virtualenv + pip 的结合,既是虚拟环境管理器,也是包管理器(conda包管理器一般会安装过多的依赖,如TensorFlow自动安装cudnn,也可以使用pip安装包)
- pip只能安装Python的包,conda可以安装一些工具软件,即使这些软件不是基于Python开发的
- 如果觉得Anaconda自带太多用不到的包,只想使用conda的环境管理和包管理功能,那么Anaconda确实太过庞大了,推荐使用Miniconda,它是Anaconda的无界面和预装包的版本**
-
一般使用venv会在该项目下创建虚拟环境或者在项目下创建venv的文件夹(含配置文件),而conda每个虚拟环境不会占用项目文件夹的空间,它创建在用户设定的一个位置,这使得多个项目共享一个虚拟环境更加方便(只是方便,venv也是可以的,但是venv一般占用项目文件夹空间,而且venv命令行使用具有局限性)
-
conda虚拟环境是独立于操作系统解释器环境的,即无论操作系统解释器什么版本(哪怕2.7),也可以指定虚拟环境python版本为3.6,更加灵活,而venv是依赖主环境的,只能基于系统的python解释器版本创建相应的虚拟环境(最大的区别,如果工作中需要用到不同版本python环境,则推荐使用conda更加方便)。
-
使用virtualenv创建的虚拟环境,需要安装相应的python包,而conda可能已经自动集成了部分包
-
conda有图形化环境管理器,venv没有
2. virtualenv + virtualenvwrapper
使用virtualenv + virtualenvwrapper 创建虚拟环境?什么?怎么又出来个virtualenwrapper? 先卖个关子,一步一步来…
1. virtualenv
virtualenv 是一个创建隔绝的Python环境的 工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。
为什么要用virtualenv?
-
隔离项目之间的第三方包依赖,如A项目依赖Django1.2.5,B项目依赖django1.3
-
为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一遍。(在服务器上都不用安装virtualenv, 直接将virtualenv 创建的目录拷贝到服务器,修改路径,进行虚拟环境迁移即可)
-
可以用在没有 root 权限的Python环境配置上,如果没有root 权限,可以先自己搞一个virtualenv,再在virtualenv中使用pip 安装(系统中没有pip, 并且也没有 root 权限使用 sudo apt-get安装)
安装virtualenv
通过pip安装virtualenv:pip install virtualenv
测试安装情况:virtualenv --version
基本使用
-
创建虚拟环境:
-
切换到某个目录下
cd project_folder
-
命令创建虚拟环境
virtualenv venv
virtualenv t3
将会在当前的目录中创建一个文件夹,包含了Python可执行文件, 以及pip
库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是t3
) 可以是任意的;若省略名字将会把文件均放在当前目录。
-
-
激活虚拟环境:
开始使用虚拟环境,需要被激活,将路径切换到 …/t3/Scripts/下(t3为创建的虚拟环境的名称),然后运行activate.bat
即可完成虚拟环境的激活。如下图(截图中虚拟环境名称为):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
注:当前虚拟环境的名字会显示在提示符左侧(比如说(t3)您的电脑:您的工程 用户名$) 以让您知道它是激活的。从现在起,任何您使用pip安装的包将会放在 ``t3
文件夹中, 与全局安装的Python隔绝开,可以像平时一样使用pip安装需要的包。 -
退出虚拟环境:
如果您在虚拟环境中暂时完成了工作,则可以停用它deactivate
这将会回到系统默认的Python解释器。 -
删除虚拟环境:
只需要将虚拟环境对应的文件夹删除即可。
对于virtualenv创建的虚拟环境,无法做到统一管理,而且每次都需要到虚拟环境的Scripts目录下进行激活,切换不同的虚拟环境也不方便,因此出现了virtualenvwrapper做到虚拟环境的统一管理。
2. virtualenvwrapper
virtualenvwrapper作为virtualenv功能的扩展,可以统一管理虚拟环境(将虚拟环境放到WORKON_HOME目录下),并且方便我们用单个命令切换不同的虚拟环境、查看所有已创建的虚拟环境等,接下来就开始virtualenvwrapper的安装与使用:
安装virtualenvwrapper
通过pip安装(确保 virtualenv 已经安装了):pip install virtualenvwrapper-win
进行安装(系统为windows),如果是Linux,命令为pip install virtualenvwrapper
注:virtualenvwrapper-win is a port of Dough Hellman’s virtualenvwrapper to Windows
batch scripts.
本人通常将virtualenvwrappper安装到系统的python解释器下,用于后期所有项目虚拟环境的管理,个人根据实际情况安装吧。。。
设置环境变量WORKON_HOME
使用pip安装的virtualenvwrapper默认创建的虚拟环境放到%USERPROFILE%\Envs文件夹下,我们需要通过环境变量 WORKON_HOME 来自定义需要将虚拟环境存放的位置:
-
打开设置环境变量窗口
-
在系统变量下点击新建按钮
-
设置变量名为WORKON_HOME,变量值为自己放置虚拟环境的文件夹
注:windows10在配置后需要重启才能生效
virtualenvwrapper的使用
了解了virtualenvwrapper的功能、安装,接下来初步学习一下其相关的使用(也可以直接查看文末的相关文档):
-
创建虚拟环境:mkvirtualenv 虚拟环境名称,该命令会在你自定义的WORKON_HOME目录下创建一个以虚拟环境名称命名的文件夹,用于存放创建的虚拟环境
-
如
mkvirtualenv test1
表示创建test1 的虚拟环境 -
如果希望虚拟环境中包含系统解释器中已经安装的python包,则使用
mkvirtualenv test1 --system-site-packages
(默认不包含系统环境中的python包) -
如需要指定解释器,则使用
mkvirtualenv --python=python3安装路径 test1
**注:**如果你系统只安装了一个版本的python,则该命令只能创建该版本的虚拟环境,而使用conda可以创建其他基于其他python版本的虚拟环境(即使系统中没有安装该版本python环境),这个应该属于conda的优点吧。
-
-
启动虚拟环境:
workon test1
-
退出虚拟环境:
deactivate
-
删除虚拟环境:
rmvirtualenv test1
注:此时删除虚拟环境,会将该虚拟环境的文件夹整体删除,注意对比区别pycharm删除虚拟环境的情况(参考下文) -
查看所有的虚拟环境:
workon
或lsvirtualenv
lsvirtualenv会输出WORKON_HOME所在的路径,更容易找到虚拟环境的路径位置
# 其他命令
cdvirtualenv:将当前目录切换到虚拟环境所在的目录
注意要在虚拟环境中运行
更多命令直接查看文档吧…
3. Pycharm创建虚拟环境
1. 使用Pycharm创建虚拟环境
创建截图具体如下:
- 1标号:借助virtualenv创建虚拟环境
- 2标号:借助conda创建虚拟环境
- 3标号:使用系统解释器作为项目环境
- 4标号:借助Pipenv创建虚拟环境
- 5标号:暂时忽略
注:红色框住的表示创建的python环境是否包含系统已安装的python包。
2. pycharm创建虚拟环境如何查看
使用pycharm创建虚拟环境后(不包括上面标号3创建python 环境的方式),该如何查看已经创建的虚拟环境呢??能否使用virtualenvwrapper查看到呢?直观认识上有以下几种方式:
-
**第一种方式:**在pycharm中查看
该种方法简单,直接省略,重点看后面两种方式 -
第二种方式:在命令行查看
除了第一种方式之外,如果想在命令行查看一下使用pycharm创建的虚拟环境,该如何实现呢??
在命令行下,将路径切换到虚拟环境创建截图标号5的路径下:-
进入Scripts目录(注意不是python安装路径下的Scripts哈,不要搞混了)
-
激活虚拟环境:输入命令activate.bat,出现2标号则表示虚拟环境已激活
-
退出虚拟环境:输入命令deactivate.bat
-
-
**第三种方式:**在virtualenvwrapper中查看
如果想使用virtualenvwrapper查看pycharm创建的虚拟环境,有个前提是必须将项目或者虚拟环境目录放到virtualenvwrapper的WORKON_HOME目录下,创建的虚拟环境与使用virtualenv+virtualenvwrapper创建的方式一样。具体步骤:-
在virtualenvwrapper的WORKON_HOME目录下创建一个文件夹用于存放虚拟环境
-
在pycharm中创建虚拟环境,注意创建截图中标号5选择刚刚创建的文件夹
-
依次创建即可,然后使用
workon
命令也可以查看到使用pycharm创建的虚拟环境
注意:当删除该虚拟环境时,如果在pycharm中删除,则真实的虚拟环境仍然存在开始创建的文件夹下,需要手动进行删除
-
3. pycharm删除虚拟环境
直接在pycharm中删除相应的虚拟环境(选中,点击减号)即可
文章来源:https://www.toymoban.com/news/detail-496618.html
注意:该种删除方式仅仅是断开Pycharm与虚拟环境的关联,虚拟环境仍然存在于机器下,如果确实不需要,请到相应的路径下进行删除。文章来源地址https://www.toymoban.com/news/detail-496618.html
4. 参考
- virtualenv文档
- virtualenvwrapper文档
到了这里,关于Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!