conda-使用教程

在Anaconda中conda可以理解为一个工具,也是一个可执行命令,其核心功能是环境管理与包管理。所以对虚拟环境进行创建、删除等操作需要使用conda命令。

conda install 和 pip install 区别

通常我们可以使用conda和pip两种方式来下载和卸载安装包,这里说一下这两种方式使用的区别。conda是一种通用包管理系统,可以构建和管理任何语言的任何类型的软件,因此,它也使用于Python包。pip是Python官当认可的包管理器,最常用于安装在Python包索引(PyPI)上发布的包,网址https://pypi.org/

即:pip是Python包的通用管理器,conda是一个与语言无关的跨平台环境管理器,对于我们用户来说,最显著的区别是pip在任何环境中安装Python包,conda安装任何环境的任何包。

注意:Anaconda中base环境中已经集成安装好了conda和pip,所以可以使用两种方式来安装我们想要的python软件包,安装好了软件包在Scripts目录下可以找到。

PiP常用命令

pip --version:查看已经安装了的pip版本

pip install -U pip:升级pip

pip list 或 pip freeze:查看当前已经安装好了包及版本

pip install package_name(包名):下载安装包

pip uninstall package_name(包名): 卸载安装包

pip show package_name(包名):显示安装包信息(安装路径、依赖关系等)

conda常用命令

conda list:查看环境中已经安装了的软件包

conda env list 或者 conda info -e : 查看当前存在那些虚拟环境

conda update conda: 检查更新当前的conda版本

conda install package_name(包名):下载安装包

conda uninstall package_name(包名): 卸载安装包

创建虚拟环境

方式有两种:命令创建和界面创建

  • 命令创建:
    conda create -n your _env_name package_name python=X.X (2.7、3.6等)

创建python版本为:X.X,不指定时,默认安装最新Python版本

要安装的包 :package_name 根据需求下载,可不填

虚拟环境名字为: your _env_name

注意:your_env_name文件可以在Anaconda安装目录envs文件下找到

举例:conda create -n myenv numpy matplotlib python=3.7

界面创建: 电脑开始菜单找到Anaconda Navigator,进入界面之后,选择Environments,选择Create按钮,出现如下界面,填写你要创建的虚拟环境名和Python版本后点击Create,即创建成功。

image

删除虚拟环境

方式有两种:命令删除和界面删除

  • 命令删除
    conda remove -n your_enev_name --all ,即可删除

删除虚拟环境中的某个包

conda remove -- name your_enev_namepackage_name(包名)

或者进入激活虚拟环境后,使用命令 conda uninstall package_name(包名)

界面删除: 电脑开始菜单找到Anaconda Navigator,进入界面之后,选择Environments,选择你要删除的许环境名,单击remove按钮即成功删除该环境

激活已经创建的虚拟环境

Linux :source activate your_env_ name(虚拟环境名)

Windows:activate your_env_ name(虚拟环境名)

切换已经创建好了的环境

activate your_env_ name(你想要切换的虚拟环境名)

若忘记要名环境,可以使用如下命令先查看当前所有已经创建好了的虚拟环境

conda env list

然后再 activate your_env_ name(你想要切换的虚拟环境名)

退出已经创建的虚拟环境

Linux :source deactivate your_env_ name(虚拟环境名)

Windows:deactivate your_env_ name(虚拟环境名)

使用pip下载安装Python包时速度经常会十分缓慢,这主要是因为国内网络不稳定,解决办法是将pip安装源设置为国内的源即可,下载和速度会大幅度提升,而使用Conda安装时,因为网络原因也会经常出现HttpError的问题,下面就来详细介绍如何解决上述问题的方法。

pip国内常用镜像源

阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

这里推荐使用豆瓣和清华源,因为它们比较稳定

pip安装临时使用国内镜像源

可以在使用pip安装时在后面加上 -i 参数,来指定pip源,举例:

pip install numpy -i https://pypi.douban.com/simple/

注意:http后面要加s

永久指定pip默认安装源

Windows:

直接在user目录中创建一个pip目录,如:C:\Users\用户名\pip,创建完后再pip 目 录下新建文件pip.ini,添加以下内容:

[gobal]

timeout = 6000
index-url = http://pypi.douban.com/simple/
trusted-host = http://pypi.douban.com

编辑完后进行保存,这样当我们再使用pip来安装时,会默认调用我们设置好了的镜像 源,就不用每次再临时添加。

Linux:

修改 ~/.pip/pip.conf (没有就创建一个),和Windows上一样,在pip.conf文件中添加内容后保存

[gobal]

timeout = 6000
index-url = http://pypi.douban.com/simple/
trusted-host = http://pypi.douban.com

conda切换源

在conda安装好之后,默认的镜像是官方的,由于官网的镜像在境外,访问太慢或者不能访问,为了能够加快访问的速度,首先在命令行中打开虚拟环境,输入以下命令(设置清华的镜像)

终端中运行命令:

(1)清华源(TUNA)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --setshow_channel_urls yes

(2)中科大源(USTC)

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/

conda config --setshow_channel_urls yes

然后更改镜像源配置文件,在用户home目录下,找到 .condarc 配置文件,如C:\Users\用户名.condarc,右键选择记事本打开编辑,删掉channels下面的 -defaults一行,或者在其前面加#号注释掉。

换回默认源:

  • conda config --remove-key channels

Conda 提供了多种保存和移动环境的方法。

Clone

在本地,conda 可以方便地创建环境的快照或者备份:

 conda create --name snapshot --clone myenv

Spec List

如果需要在具有 相同操作系统 的计算机之间复制环境,则可以生成 spec list。这是离线打包。

生成 spec list 文件:

 conda list --explicit > spec-list.txt

重现环境:

 conda create  --name python-course --file spec-list.txt

Environment.yml

也可以使用 -export 选项生成一个 environment.yml 文件,以在 不同的平台和操作系统之间 复现项目环境。 spec list 文件和 environment.yml 文件之间的区别在于: environment.yml 文件不针对特定操作系统,并且使用YAML格式。 environment.yml 仅列出了软件包名称,由 conda 基于软件包的名称构建环境。 另一个区别是 -export 还包括使用pip安装的软件包,而 spec list 则没有。

导出 environment.yml 文件:

 conda env export > environment.yml

注意:如果当前路径已经有了 environment.yml 文件,conda 会重写这个文件

重现环境:

 conda env create -f environment.yml

Conda Pack

Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。 当您想在有限或没有网络访问的系统中重现环境时,此功能很有用。上面的方法均从其各自的存储库下载软件包以创建环境。而此方法不需要。注意,conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平台和操作系统。

要安装 conda-pack,请确保您位于 root 或 base 环境中,以便 conda-pack 在子环境中可用。Conda-pack 可通过 conda-forge 或者 PyPI 安装。

conda-forge:

 conda install -c conda-forge conda-pack

PyPI:

 pip install conda-pack

打包一个环境:

# Pack environment my_env into my_env.tar.gz
conda pack -n my_env

# Pack environment my_env into out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz

# Pack environment located at an explicit path into my_env.tar.gz
conda pack -p /explicit/path/to/my_env

重现环境:

# Unpack environment into directory `my_env`
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env

# Use Python without activating or fixing the prefixes. Most Python
# libraries will work fine, but things that require prefix cleanups
# will fail.
./my_env/bin/python

# Activate the environment. This adds `my_env/bin` to your path
source my_env/bin/activate

# Run Python from in the environment
(my_env) $ python

# Cleanup prefixes from in the active environment.
# Note that this command can also be run without activating the environment
# as long as some version of Python is already installed on the machine.
(my_env) $ conda-unpack

Summary

Conda 提供了多种复制项目环境的方法。 创建环境的克隆可以提供定制的基本环境或该环境的快照。spec listconda-pack 可创建特定于平台和操作系统的环境副本。 其中 spec list 使用网络来下载环境中特定的软件包,而 conda-pack 可以打包包括软件包二进制文件在内的整个环境,这在带宽不足或没有网络的情况下很有用。 Conda导出 environment.yml 的方式非常适合在不同平台和操作系统之间重新创建环境。

更多详情请见 docs.conda.ioconda-pack project page.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容