python虚拟环境: conda create与 virtualenv对比

Anacodna之conda与 virtualenv对比使用教程,创建虚拟环境

conda创建虚拟环境

1.查看包

  • conda list查看安装了哪些包
  • conda env list查看有哪些虚拟环境
  • conda -V查看conda的版本

2.创建虚拟环境,命名为myflaskappn就是指name;并安装flask包。

Note that the conda create command requires that you give it the name of a package to install in the new environment.

conda命令创建虚拟环境时,必须指定一个或者几个你需要安装的package

conda create -n py2 python=2* anaconda
这样就会安装anaconda2版本。

栗子1:
这条命令安装了一个名为myflaskapp虚拟环境,安装flask包。

conda create -n myflaskapp flask

栗子2:
这个是克隆创建了一个和原系统一样的python环境,命名为nb

conda create -n nb --clone root

栗子3:
这就不需指定具体包了

conda create --name $ENVIRONMENT_NAME python

其他:

$ conda create -n py3 python=3*
$ conda create -n py2 python=2*

This will create two environments, one with Python3 and the other with Python2. I typically set one of these as my default by adding source activate py3 to my terminal startup. Typically I only use these "named python" environments to run a Python REPL or do general Python tasks. I'll create another conda environment named specifically for each real project I work on.

这个创建两个python版本的环境。

3.切换环境

Linux命令未实验。

  • Linux:source activate myflaskapp
  • Windows:activate myflaskapp

4.关闭环境

  • Linux:source deactivate
  • Windows:deactivate

5.改指定虚拟环境安装包

conda install -n yourenvname [package]

6.移除虚拟环境

  • 移除某个环境中的包
conda remove --name $ENVIRONMENT_NAME $PACKAGE_NAME
  • 移除某个虚拟环境
conda remove -n yourenvname --all

这些所有的虚拟环境,都在C:\Anaconda3\envs文件夹下。

virtualenv创建虚拟环境

1.安装virtualenv

pip install virtualenv

2.创建虚拟环境

$ mkdir myproject
$ cd myproject
$ virtualenv venv

创建了一个名为myproject的文件夹,然后这里边创建虚拟环境venv

在创建virtualenv时增加--no-site-packages 选项的virtualenv就不会读取系统包,如下:

virtualenv nowamagic_venv --no-site-packages

--distribute选项使virtualenv使用新的基于发行版的包管理系统而不是 setuptools 获得的包。 你现在需要知道的就是 --distribute 选项会自动在新的虚拟环境中安装 pip ,这样就不需要手动安装了。 当你成为一个更有经验的Python开发者,你就会明白其中细节。

virtualenv --distribute nowamagic_venv

3.激活虚拟环境

  • Linux:$ . venv/bin/activate或者source $ENV_BASE_DIR/$ENVIRONMENT_NAME/bin/activate
    没有实验,所以暂时写两种方法,如果此时进入到venv虚拟环境文件夹下,可以source bin/activate
  • Windows:$ venv\scripts\activate

4.退出环境

deactivate

conda与 pip 和 virtualenv关系理解

2019年01月11日 11:15:35 小伙儿1995 阅读数 1417

版权声明: https://blog.csdn.net/sinat_28442665/article/details/86292354

有conda就是一个包管理?和安装?,他就是要做比pip更多的事情;在python-site-packages之外管理python 库依赖关系。 而且conda同样也像virtualenv一样创建一个虚拟环境。

conda可以让你同时管理安装处理你有关python的任务和跟python无关的任务

conda使用了一个新的包格式,你不能交替使用pip 和conda。因为pip不能安装和解析conda的包格式。你可以使用两个工具 但是他们是不能交互的。

  • Anaconda、conda、pip、virtualenv的区别

① Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

② conda

conda是包及其依赖项和环境的管理工具。
适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
适用平台:Windows, macOS, Linux

用途:

快速安装、运行和升级包及其依赖项。
在计算机中便捷地创建、保存、加载和切换环境。

如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——conda官方网站

conda为Python项目而创造,但可适用于上述的多种语言。
conda包和环境管理器包含于Anaconda的所有版本当中。

③ pip

pip是用于安装和管理软件包的包管理器。
pip编写语言:Python。

Python中默认安装的版本:

Python 2.7.9及后续版本:默认安装,命令为pip

Python 3.4及后续版本:默认安装,命令为pip3

pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:

“Pip installs Packages”(“pip安装包”)
“Pip installs Python”(“pip安装Python”)

④ virtualenv

virtualenv:用于创建一个独立的Python环境的工具。

解决问题:

当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?
如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。
如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。
在共享主机时,无法在全局site-packages目录中安装包。

virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。

⑤ pip 与 conda 比较
→ 依赖项检查

pip:

不一定会展示所需其他依赖包。
安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。

conda:

列出所需其他依赖包。
安装包时自动安装其依赖项。
可以便捷地在包的不同版本中自由切换。

→ 环境管理

pip:维护多个环境难度较大。
conda:比较方便地在不同环境之间进行切换,环境管理较为简单。

→ 对系统自带Python的影响

pip:在系统自带Python中包的**更新/回退版本/卸载将影响其他程序。
conda:不会影响系统自带Python。

→ 适用语言

pip:仅适用于Python。
conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。

⑥ conda与pip、virtualenv的关系

conda结合了pip和virtualenv的功能。

原作者链接,非常感谢,是一篇给力的好文章

ython配置-virtualenv和conda的区别

2018年12月01日 11:23:09 周先森爱吃素 阅读数 2077

版权声明:转载请注明出处 https://blog.csdn.net/zhouchen1998/article/details/84671528

之前详细说过如何在windows上部署conda环境,详细可以查看我的这篇博客。其他平台(主要是linux和macos)在我看来异曲同工,只是几个命令由conda变为了source。(如conda activate myvenv变为source activate myvenv)

1.什么是virtualenv(venv)

  • 这是一个虚拟环境管理器,作为非数据科学领域的开发者来说是很实用的。它可以让你每个项目甚至每个脚本配置一个自定义的python解释器环境,这最大的好处是我可以不污染开发环境
  • 举个例子,我有个项目是专门写爬虫的,那么我可能需要requests,bs4,lxml,pyspider,scrapy等包或者框架,此时我还有个项目我想要写点GUI界面,主要使用的包是pyqt,如果在原生的python解释器环境里面,我不得不把这个GUI包(对于我爬虫项目可能永远不会涉及使用)放到下载的包里面。
  • 这不只是看着不舒服(不考虑反复去卸载包),久而久之,你的开发环境可能会变得很庞大,因为里面堆积了很多垃圾包(你基本上不会再使用了),很多配置文件,难以寻觅,这对计算机是莫大的伤害。
  • 但是venv则可以创建任意多个虚拟环境,你只要指定当前环境那么pip安装的包就只会在这个环境下,这个环境和你的操作系统部署的python环境是隔离的。这有两个好处。
    • 首先,我可以分门别类常见虚拟环境,互不污染。(如机器学习和爬虫不干涉)
    • 其次,一旦我不使用了,可以直接删除虚拟环境,而不用管各种文件残留,关联问题了。

2.什么是pip

  • pip 是 Python 最常用的包管理器,该工具提供了对Python 包的查找、下载、安装、卸载的功能。它能自动处理依赖 。(linux开发者曾今对此深恶痛绝知道yum的出现)
  • 一般pip是解释器自带的,当然也可以安装。pip的出现使得类似java那样第三方包较难管理的局面消失(当然java也可以方便处理了)。
  • 使用方法:pip install packagename
  • 当然,后面提到的conda也具有包管理器功能,使用是:conda install packagename

3.什么是conda

  • 最近有人问我venv和conda有什么区别,其实在我看来区别不是特别大。主要如下。
    • 如果说venv是虚拟环境管理器,pip是包管理器,那么conda则是两者的结合。
    • 遗憾的是conda的包管理器做的一般,大多数时候还是使用pip安装包。
    • 但是,注意,pip只能安装Python的包,conda可以安装一些工具软件,即使这些软件不是基于Python开发的。
    • 但是conda的虚拟环境管理还是可以的,一般使用venv会在该项目下创建虚拟环境,再不济也会在项目下创建venv的文件夹(含配置文件),当然pycharm下创建虚拟环境另说;然而conda每个虚拟环境不会占用项目文件夹的空间,它创建在用户设定的一个位置,这使得多个项目共享一个虚拟环境更加方便(只是方便,venv也是可以的,但是venv一般占用项目文件夹空间,而且venv命令行使用具有局限性)。
    • conda虚拟环境是独立于操作系统解释器环境的,即无论操作系统解释器什么版本(哪怕2.7),我也可以指定虚拟环境python版本为3.6(见文章开头所说原博客),而venv是依赖主环境的。
    • 对于科学计算和大数据领域的人,conda是环境自动集成了numpy这样的主流科学计算包的,venv每个包都要自行下载。
    • conda有图形化环境管理器,venv没有。(虽然开发人员几乎不用图形界面conda)

好吧,对于我这样一个一直使用conda的人问我venv怎么样本来就有失偏颇,但个人觉得conda是很好用的,尤其图形化环境下(如windows,ubuntu)安装anaconda集成了jupyter notebook等科算数据分析人员等常用工具。

发布了63 篇原创文章 · 获赞 52 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_41521681/article/details/98070414