目录
一. Anaconda 是什么
Anaconda 是一个开源的 Python 和 R 语言的发行版,用于科学计算、数据分析、机器学习和大数据处理等领域。它包含了许多常用的数据科学工具和库,并提供了一个方便的包管理系统,使得用户可以轻松地安装、管理和更新各种数据科学工具和库。
Anaconda 包括以下主要组件:
- Python 和 R:Anaconda 自带 Python 和 R 语言的解释器,并预先安装了许多常用的数据科学包和库。这使得用户可以立即开始在 Python 或 R 中进行数据分析、科学计算和机器学习等任务。
- conda:conda 是 Anaconda 的包管理器和环境管理器。它可以用于安装、升级、删除软件包,并管理不同版本的软件包之间的依赖关系。conda 还允许用户创建、管理和切换不同的环境,以便在同一台机器上同时运行多个不同版本的软件。
- Jupyter Notebook:Jupyter Notebook 是一个交互式的笔记本环境,可以在网页浏览器中创建和共享文档,包括实时代码、可视化图形、文本和其他富媒体内容。
- Spyder:Spyder 是一个基于 Python 的集成开发环境,提供了丰富的编辑器、调试器和其他开发工具,适用于开发和调试 Python 代码。
正因为 Anaconda 集成了 Python、Jupyter Notebook、NumPy、Pandas、Matplotlib 等诸多数据科学工具和库,并且提供了简单易用的环境管理工具,可以轻松地创建、管理和切换不同的 Python 虚拟环境,Anaconda 在项目开发中被广泛使用。安装好 Anaconda 的计算机会自带一个基础环境,后续项目开发时每个项目需要的安装包不同,为了避免冲突,可以为每个项目配置一个虚拟环境,以 避免不同项目之间环境依赖的冲突。
二. Anaconda 的安装
本文介绍的是 Windows 上的安装流程,Linux 上的安装方法可以参考 如何在Linux服务器上安装Anaconda(超详细)。
1. 下载安装包
去 官网 下载 Anaconda:
2. 安装
双击安装包安装即可:
安装过程中,如果在 Advanced Options
时没有勾选 Add Anaconda3 to my PATH environment variable
,则需要手动配置环境变量 1:
- 右键 “此电脑” —> 属性 —> 高级系统设置 —> 高级 —> 环境变量,选中系统变量
Path
进行编辑; - 将
Anaconda
、Anaconda\Scripts
和Anaconda\Library\bin
添加到Path
中:
3. 检查
添加完环境变量可以使用 cmd 运行 conda --version
检查 Anaconda 的安装情况,如图所示即为安装成功:
( 附:Linux 服务器上安装 Anaconda 方法:
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh # 下载安装包
chmod +x Anaconda3-2024.02-1-Linux-x86_64.sh # 添加可执行权限
./Anaconda3-2024.02-1-Linux-x86_64.sh # 安装
# ---- 打开新的终端 ----
conda -V # 验证安装
三. Anaconda 的使用
Anaconda 自带 Python 解释器,因此安装好 Anaconda 后不需要再额外安装 Python 解释器。可以在 cmd 中使用 python
命令检查解释器,如下图所示:
安装 Anaconda 时,还附带了基于 cmd 的 Anaconda Prompt 和基于 Powershell 的 Anaconda Powershell Prompt,可以来管理 conda 环境。下面以 Anaconda Powershell Prompt 为例,介绍 Anaconda 的常用指令。
1. 创建虚拟环境
安装好的 Anaconda 自带一个基础环境 base
,为了避免冲突,可以使用 conda create [-n ENVIRONMENT_NAME] [PACKAGE1 PACKAGE2 ...]
指令为每个项目单独配置虚拟环境,以避免不同项目之间环境依赖的冲突。创建环境时,可以指定 Python 版本、要安装的包,以及环境的名称。指令的可选参数如下:
-n, --name
:指定要创建的环境的名称;-c, --channel
:指定从特定的 Conda 频道安装包;--file
:从文件中读取要安装的包的列表;-p, --prefix
:指定环境的路径;-y
:执行命令时不需要确认,可以直接执行;
示例如下:
conda create -n myenv -y python=3.8
conda create -p /home/anaconda3/envs/myenv -y python=3.8
conda create -n myenv numpy pandas
conda create -n myenv --file requirements.txt
2. 激活虚拟环境
创建完成虚拟环境后,可以使用 conda activate ENVIRONMENT_NAME
命令来激活创建的环境:
3. 列举虚拟环境
可以使用 conda env list
列出当前的所有虚拟环境:
*
表示当前所处环境。
4. 复制虚拟环境
创建虚拟环境时,可以直接复制现有环境以创建新环境 2:
conda create --name newenv --clone oldenv
conda create -p path/to/newenv --clone path/to/oldenv
如果仅仅是想重命名虚拟环境,可以执行 rename
命令:
conda rename -n test123 test321
conda rename --name test123 test321
conda rename -p path/to/test123 test321
conda rename --prefix path/to/test123 test321
有时候想要将打包好的环境直接上传到 miniconda3/envs
下进行使用,理论上可以直接激活。如果环境没有正确激活,可以按照以下方式进行排查:
- 检查 Python 版本和包路径:
python -c "import sys; print(sys.executable); print(sys.path)"
,如果sys.executable
指向 base 环境,说明虚拟环境没有正确激活;如果sys.path
里包含 base 的 site-packages,说明虚拟环境没有注册进PYTHONPATH
; - 赋予虚拟环境目录及其文件正确权限:
sudo chmod -R 755 /root/miniconda3/envs/zeus
; - 手动注册虚拟环境到 Conda:
conda config --append envs_dirs /root/miniconda3/envs
; - 再次检查 Python 版本和包路径:
python -c "import sys; print(sys.executable); print(sys.path)"
,此时应该指向虚拟环境;
5. 退出虚拟环境
当需要切换虚拟环境或者退出当前虚拟环境时,可以使用 conda deactivate
命令:
6. 删除虚拟环境
当一个环境不再使用后,可以使用 conda remove --name ENVIRONMENT_NAME --all
或 conda remove -p ENVIRONMENT_PATH --all
命令将其删除:
需要注意的是,删除环境前需要先退出当前环境。
7. conda 命令查询
如果有想查询更多的 conda
命令,可以直接执行 conda -h
命令查询所有关键字:
然后执行 conda 关键字 --help
命令即可:
四. 包管理
1. 安装包
激活 conda 环境后,可以使用 conda install PACKAGE_NAME(=version)
、conda update PACKAGE_NAME
、conda remove PACKAGE_NAME
命令来安装、更新、移除指定的包:
Tips:
- 有时候,包管理器会使用缓存中的包版本,如果想清理缓存并重新安装,可以使用
conda clean --all
清除缓存; - 安装一些包时,会自动安装或更新一些依赖包,可以添加
--no-deps
参数忽略依赖关系;
2. 查看包
在当前环境安装的包,不会在环境外显示。安装完成后的包,可以运行 conda list
命令来查看当前环境下所有的包;也可以运行 python
命令启动 Python 解释器的交互模式,然后 import
查看:
如果不知道安装什么版本的包,可以使用 conda search PACKAGE_NAME
指令查询可用的版本:
3. conda 安装和 pip 安装的区别
虽然 conda 和 pip 都可以安装软件包,但有一些差别:
- 安装位置:
- 通过 pip 安装的 Python 软件包通常会被安装到 Python 解释器的
site-packages
目录下:Linux 中一般在/usr/local/lib/python3.x/site-packages/
下,Windows 中一般在C:\Python3.x\Lib\site-packages\
下; - 通过 conda 安装的 Python 软件包通常会被安装到 conda 环境下特定目录:base 环境一般在
/anaconda3/lib/python3.x/site-packages/
,新建 conda 环境一般在/path/to/your/env/lib/python3.x/site-packages/
;
- 通过 pip 安装的 Python 软件包通常会被安装到 Python 解释器的
- 软件包来源:
- pip 是 Python 的默认包管理工具,主要用于从 Python Package Index (PyPI) 安装和管理 Python 软件包;
- conda 是 Anaconda 发行版自带的包管理工具,它能够管理包括 Python 软件包在内的任何软件包,并提供了自己的软件仓库;
总的来说,pip 适用于管理 Python 包,而 conda 则更适用于管理整个软件环境。因此大多数情况下,项目开发会 使用 conda 创建虚拟环境,然后 使用 pip 安装软件包。
4. 换源
Anaconda 默认的下载源都是国外源,如果使用国内网会速度缓慢甚至中断,因此可以使用 conda config --add channels
命令将国内源设置为默认下载源 3:
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
pip 也可以直接换源 4:
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
如果 conda install
和 pip install
都不能正常安装,可以尝试从 Anaconda.org 进行安装 5。
五. VS Code 开发
安装 Anaconda 时,自带 Spyder 和 Jupyter notebook,可以针对性地进行科学计算和数据分析等集成开发。但这些 IDE 在项目开发中还是不够方便,众多开发者还是普遍更愿意使用 VS Code 或者 PyCharm,下面介绍在 VS Code 中使用 Anaconda 的开发方法。
1. 安装插件
在 VS Code 中安装与 Python 相关的插件:
为了在 VS Code 中运行代码,还需要安装 Code Runner 插件:
2. 打开工作区
安装了 Python 相关的插件后,就可以在 VS Code 中进行 Python 相关开发了。打开项目文件夹即可:
3. 选择解释器
要想让项目成功运行,还需要选择合适的 Python 解释器。点击右下角选择 Python 解释器,可以在不同的 Conda 环境中选择:
需要注意的是,Python 项目文件和 Conda 环境并无直接关系。Conda 环境本质上就是一个具有独立 Python 解释器和一组特定依赖项的环境,可以支持多个不同的 Python 项目文件的运行;Python 项目文件可以在任何安装了所需依赖的环境中运行,只要在运行项目之前确保所需的依赖都已经安装。
由于 Microsoft / vscode-python 的技术限制 6,底部导航栏的终端只能展示文件路径,无法像 Anaconda Powershell Prompt 一样显示当前 Conda 环境:
可以使用 conda env list
命令检查,*
标出的即为当前环境:
4. 集成终端命令
在 VS Code 的集成终端中,conda 的 activate
命令无法正常工作。如果想要激活环境,可以使用 D:\KSoftware\Anaconda\Scripts\activate.bat ENVIRONMENT_NAME
命令:
如果想要退出终端,可以使用 deactivate
命令,或者直接选择其他解释器。
5. Run Code 解释器
虽然此前已经选择了 conda 环境的 Python 解释器,但是使用 VS Code 右上角 Run Code
按钮运行 python 文件时,还是会出现 ModuleNotFoundError
:
启动 Python 解释器的交互模式输出 sys.executable
检查 Python 解释器的路径发现 VS Code 的终端默认使用 base
环境的解释器:
造成上述问题的原因是 右上角的 Run Code
按钮和右下角的 Python 环境是分离的,前者来自 Code Runner 插件,后者由 Python 插件支持。点击 Run Code
按钮后,VS Code 执行 Code-runner: Executor Map
下 Edit in settings.json
中 python
对应的指令,由于 系统变量中只添加了 base
环境的解释器路径,所以 VS Code 的终端默认使用 base
环境的解释器。
-
方法一:想要使用 conda 环境的解释器执行 python 文件,可以手动指定 conda 环境的 python 解释器路径,即
path\to\your\env\python.exe -u "path\to\your\file.py"
:
-
方法二:运行 Python 文件时不使用来自 Code Runner 插件的
Run Code
,而使用来自 Python 插件的Run Python File
7:
-
方法三:打开设置,搜索 “Code Runner Executor Map”;在 “Code-runner: Executor Map” 中点击编辑
settings.json
;将python
对应命令修改为指定的解释器路径:
六. VS Code 个性化设置
1. 切换输出位置
在安装了 Code Runner 插件后,运行 .py
文件可以直接点击右上角的 Run Code
按钮,运行结果会出现在下方的导航栏:
对于用惯了服务器命令行的用户,肯定希望输出结果都在 “终端” 显示,而不是 “输出”。如果此时 VS Code 的输出结果是在 “输出” 中显示,可以进行如下操作 8,将输出结果切换至 “终端”:
- 打开设置,搜索 “Code Runner Executor Map”:
- 在 “Code-runner: Executor Map” 中点击编辑
settings.json
; - 添加
"code-runner.runInTerminal": true
字段即可: