使用conda管理python包和环境

写在前面

被python下的包管理和环境管理反复折磨过几回,遂将遇到的一些问题和使用的方法整理下来,减少以后重复检索的劳动。本文主要聚焦在Conda,也有一些其他相关内容。

辨析

Python之所以强大,一方面是其本身(语言特性、core和标准库)的强大,另一方面也因为其有着覆盖众多领域、丰富而强大的第三方库,很多时候只需要检索一下是否有相关的库,如果有就可以做个快乐的“调包侠”了。但是,库多了,如果将所有库放在一起,杂乱不说,而且难以迁移。项目背景不同,需要的库也不同,同时库也一直在更新,库间还存在依赖,因此就需要对库及其版本和依赖进行管理,保证代码在任何时候都可以正常运行。Python、问题领域相关的库以及管理工具一起就构成了相对独立的生产环境,引出了包管理环境管理

下面辨析下与Conda常常一起出现的几个小伙伴:pipvirtualenvAnacondaMiniconda等。

  • pip:从官网上下载的Python,是一个相对纯净的默认环境,里面有Python内核和标准库、pip等其他可选包和工具。pip是包管理工具,我们可以使用pip来下载和安装其他包,pip会将包安装在当前环境里,没有创建和启用其他环境时,安装在默认环境里。
  • virtualenvvitualenv是环境管理工具,可以创建独立的python环境——与默认环境具有相似的目录结构。
  • condaconda可同时进行包管理和环境管理,通过conda可以创建环境和切换环境,也可以将包安装到对应环境。Conda将一切都视为包,甚至包括Python和conda自己。
  • Miniconda:miniconda相当于python+conda,安装好Miniconda后可通过conda安装其他包。
  • Anaconda:anaconda相当于python+conda+data science and machine learning相关的包,即相对Miniconda预装了数据科学和机器学习相关的常用包。

logo
有趣的是,我们知道Python英文单词的意思是蟒蛇,而Anaconda是巨蟒——狂蟒之灾的电影名就叫Anaconda (´⊙ω⊙`)!两者的logo都是蛇~

Conda使用

conda基础操作
conda基础
conda环境管理
环境操作
包管理
包管理
多版本Python管理
多版本Python管理

以上截自Getting started with conda

创建的环境均保存在anaconda/envs/的各个子目录(以环境名命名),其与从python官网下载下来python纯净环境并无多大差别,具有相同的目录结构,只是在更上一层用conda 工具“统领”管理起来。
环境目录

使用 activate 激活相应环境后,默认使用的都是该环境下的命令,如anaconda/envs/py35/Scripts/下的pipwheel 等,安装的包也是放在该环境的lib目录下。

设置国内镜像

conda默认使用的国外镜像源速度相对较慢,使用清华的Anaconda仓库镜像,执行下面的命令。

# 添加清华Anaconda镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 显示通道地址
conda config --set show_channel_urls yes

命令执行完后,会生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME.condarc文件,文件内容如下:

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: true

若未成功生成该配置文件,也可手动创建、添加上面内容保存即可,具体可参见Sample .condarc file
此时,我们搜索包,可以看见已经能使用清华Anaconda镜像源了。
清华镜像源

参考

猜你喜欢

转载自blog.csdn.net/firelx/article/details/80060539