在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,即创建成功。
删除虚拟环境
方式有两种:命令删除和界面删除
- 命令删除
conda remove -n your_enev_name --all ,即可删除
删除虚拟环境中的某个包
conda remove -- name package_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 list
和 conda-pack
可创建特定于平台和操作系统的环境副本。 其中 spec list
使用网络来下载环境中特定的软件包,而 conda-pack
可以打包包括软件包二进制文件在内的整个环境,这在带宽不足或没有网络的情况下很有用。 Conda导出 environment.yml
的方式非常适合在不同平台和操作系统之间重新创建环境。
更多详情请见 docs.conda.io 和 conda-pack project page.