··参考:Anaconda完全入门指南
在 Python 的编程过程中您可以会遇到如下场景:
- 我的电脑上安装了 Python3 但是刚刚接手的项目是 Python2 的,我该怎么办?需要重新安装 Python 吗?
- 对于深度学习项目,您如何配置不同的环境以匹配不同的框架(如 Pytorch,MXNet,TensorFlow)?
- 如何将已经配置好的环境迁移到其他电脑上,而无需重新配置环境?
- 如何直接在 Jupyter Notebook 中切换环境?
😢这么多问题?该怎么办?其实,这些问题,只要您安装 Anaconda3 即可迎刃而解!
关于软件的安装,按照图示提示即可。本文主要介绍如何解决上述问题。本文以主要着眼于 Windows10 系统,其他系统是类似的。
1 Anaconda 基础
- 查看
conda
版本
Windows 用户请打开 “Anaconda Prompt”;macOS 和 Linux 用户请打开 “Terminal”(“终端”)进行操作。
conda --version
终端上将会以 conda 版本号 的形式显示当前安装 conda 的版本号,如:conda 4.8.2
。
- 更新
conda
至最新版本
conda update conda
执行命令后,conda
将会对版本进行比较并列出可以升级的版本。同时,也会告知用户其他相关包也会升级到相应版本。
- 查看
conda
帮助信息
conda --help # 或者 conda -h
- 卸载
conda
① Linux 或 macOS
rm -rf ~/anaconda3
即删除Anaconda的安装目录。根据安装的Anaconda版本选择相应的卸载命令。
② Windows
控制面板 → 添加或删除程序 → 选择“Python X.X (Anaconda)” → 点击“删除程序”
注意:Python X.X:即 Python 的版本,如:Python 3.6。
2 使用命令行进行环境管理
如果您在安装 Anaconda 时将其添加到了电脑的环境变量,可以在命令行直接输入 activate
激活环境。否则,需要使用完整的路径激活环境比如:
C:\Users\xinet\anaconda3\Scripts\activate
该路径是您的 Anaconda3 所在目录,即:
运行该命令,终端便会多一个 base
的提示:
最好不要在 base
环境中安装或者配置一些包之类的,它是 Python 的基础环境,为了更好的管理 Python 环境,需要创建属于自己的环境。
2.1 创建新环境
conda create --name <env_name> <package_names>
也可以简写为 conda create -n <env_name> <package_names>
。其中 <env_name>
与 <package_names>
分别表示创建的环境名以及环境中的包名。建议以英文命名,且不加空格,名称两边不加尖括号 <>
。
- 如果要安装指定的版本号,则只需要在包名后面以
=
和版本号的形式执行。如:conda create --name python2 python=2.7
,即创建一个名为 “python2” 的环境,环境中安装版本为 2.7 的 python。 - 如果要在新创建的环境中创建多个包,则直接在
<package_names>
后以空格隔开,添加多个包名即可。如:conda create -n python3 python=3.5 numpy pandas
,即创建一个名为 “python3” 的环境,环境中安装版本为 3.5 的 Python,同时也安装了 numpy 和 pandas。
提示:默认情况下,新创建的环境将会被保存在 /Users/<user_name>/anaconda3/env
目录下,其中,<user_name>
为当前用户的用户名。
2.2 切换环境
需要注意本文介绍的激活方法仅仅适用于 conda 4.6 及其以上版本。
conda activate <env_name> # 切换环境
2.3 列出全部环境
列出全部环境可以是 conda env list
或者 conda info -e
或者 conda info --envs
。结果中星号“*”所在行即为当前所在环境。macOS系统中默认创建的环境名为“base”。
2.4 复制环境
<copied_env_name>
即为被复制/克隆环境名。<new_env_name>
即为复制之后新环境的名称。
conda create --name <new_env_name> --clone <copied_env_name>
2.5 删除环境
conda remove --name <env_name> --all
其中 <env_name>
为被删除环境的名称。
2.6 导入导出环境
如果想要导出当前环境的包信息可以用
conda env export > environment.yaml
将包信息存入 yaml
文件中。当需要重新创建一个相同的虚拟环境时可以用
conda env create -f environment.yaml
3 使用命令行进行管理包
3.1 查找可供安装的包版本
- 精确查找
conda search --full-name <package_full_name>
--full-name
为精确查找的参数。<package_full_name>
是被查找包的全名。
- 模糊查找
conda search <text>
其中 <text>
是查找含有此字段的包名。例如:conda search py
即查找含有 py
字段的包,有哪些版本可供安装。
3.2 获取当前环境中已安装的包信息
conda list
执行上述命令后将在终端显示当前环境已安装包的包名及其版本号。
3.3 安装包
- 在指定环境中安装包
conda install --name <env_name> <package_name>
<env_name>
即将包安装的指定环境名。<package_name>
即要安装的包名。例如:conda install --name python2 pandas
即在名为“python2”的环境中安装 pandas 包。
- 在当前环境中安装包
conda install <package_name>
- 使用 pip 安装包
✋使用场景:当使用 conda install
无法进行安装时,可以使用 pip 进行安装。例如:see 包。
pip install <package_name>
注意:pip 只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用 pip 进行安装包,则需要先切换到指定环境中,再使用 pip 命令安装包。pip 无法更新 Python,因为 pip 并不将 python 视为包。pip 可以安装一些 conda 无法安装的包;conda 也可以安装一些 pip 无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令。
- 从 http://Anaconda.org 安装包
✋使用场景:当使用 conda install
无法进行安装时,可以考虑从 http://Anaconda.org 中获取安装包的命令,并进行安装。
3.4 卸载包
- 卸载指定环境中的包
conda remove --name <env_name> <package_name>
<env_name>
即卸载包所在指定环境的名称。<package_name>
即要卸载包的名称
- 卸载当前环境中的包
conda remove <package_name>
3.5 更新包
- 更新所有包
conda update --all
建议:在安装 Anaconda 之后执行上述命令更新 Anaconda 中的所有包至最新版本,便于使用。
- 更新指定包
conda update <package_name>
<package_name>
为指定更新的包名。更新多个指定包,则包名以空格隔开,向后排列。如:conda update pandas numpy matplotlib
即更新 pandas、numpy、matplotlib 包。
4 设置清华镜像
参考:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 ...
为了提高 pip 与 conda 安装软件包的速度,我们需要设置清华镜像。对于 pip,不同系统设置的方法是一样的,即:
$ pip install --upgrade pip -U # -U == --user
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
而对于 conda,在 Windows10 中这样设置:
$ 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 --set show_channel_urls yes
在 Ubuntu18.04 中设置 conda,需要借助 vscode 修改用户目录下的 .condarc
,即 code ~/.condarc
,然后添加如下内容:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
5 在 Jupyter Notebook 中切换环境
我们知道 Jupyter Notebook 是一个十分强大的工具,需要在 Jupyter Notebook 中切换环境,则需要配置 ipykernel
,比如,创建一个 TensorFlow 的环境:
$ conda install ipykernel
$ python -m ipykernel install --user --name tensorflow --display-name "tensorflow"
效果如下:
如果没有达到预期效果,可以继续安装 jupyter
即可:
$ pip install jupyter
更多精彩见 6 搭建一个友好的可塑性计算机视觉工具集。
讨论
在 Windows10 的 PowerShell 不能直接切换 conda 的环境,您需要在其中输入:
$ cmd
才可以切换环境。具体见下图:
图7 中不能直接使用 conda 的原因是我的电脑没有把 conda 添加的电脑的系统环境变量之中,所以需要使用绝对路径启动 base
环境。