Anaconda环境的安装与相关问题汇总#
首先, 选择 Anaconda3 还是 Miniconda 主要取决于您的具体需求和使用场景。
Anaconda3 vs Miniconda 对比#
| Anaconda3 | Miniconda |
---|
安装包大小 | 大(~500MB) | 小(~30MB) |
包含包数量 | 1500+ | 基本包(Conda, Python) |
安装复杂度 | 简单,开箱即用 | 需要手动安装包 |
包管理工具 | 包含 Anaconda Navigator(图形界面) | 仅包含 Conda(命令行) |
性能优化 | 包含优化包(如 Intel MKL) | 不包含优化包 |
灵活性 | 包含预装包,较固定 | 灵活,用户自主选择包 |
适合用户 | 初学者,数据科学全能用户 | 有经验的用户,资源有限的系统 |
推荐理由#
选择 Anaconda3:#
- 初学者希望快速搭建数据科学环境。
- 需要包含大量预装包的开箱即用环境。
- 不介意较大的安装包和磁盘空间占用。
选择 Miniconda:#
- 有经验的用户,希望完全掌控包和环境。
- 系统存储空间有限,安装时间紧迫。
- 只需要一些特定的包,不希望安装冗余的包。
Anaconda3的安装#
1.下载安装包#
根据系统类型选择适合的安装包下载,国内用户可以使用清华大学镜像站点下载(速度比官网快很多)
清华大学镜像站点
Anaconda官方站点
下载地址: https://www.anaconda.com/download#downloads
Archive: https://repo.anaconda.com/archive/
安装miniconda#
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # Windows
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o miniconda.exe
start /wait "" miniconda.exe /S
del miniconda.exe
# Linux
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
# MacOS
mkdir -p ~/miniconda3
curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
|
升级Anaconda到最新版本#
sh
1
2
| conda update conda
conda install anaconda=VersionNumber
|
参考地址 更新Anaconda到最新版本方法
配置Anaconda的Kernel环境#
编写代码时最好是可以实时看到代码运行结果是否符合预想,而如果你的项目里有很多代码,每次运行可能需要很多时间,而Jupyter kernel运行环境可以为我们提供会话交互式的代码编写环境,极大的方便了代码编写过程中的功能验证,并且可以及时的调整非预期结果。
Jupyter Kernel 支持很多编程语言: Python/Go/Fortran/ruby/nodejs/Typescript/R/C#/F#/Erlang/Perl/Scala/Matlab/Lua/C/C++等等。
每种语言如何安装及配置都汇总在Jupyter kernels 支持的语言环境列表中了。
创建虚拟环境并在jupyterlab配置kernel环境:
bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| # 创建虚拟环境 #
conda create --name pyenv python=3.10
# 首先激活虚拟环境
conda activate pyenv
# 安装需要软件
conda install ipython jupyterlab
# 如果在 base 主环境中已经安装了 jupyterlab,那么可以只需要安装 ipykernel
pip install ipykernel
# 在虚拟环境安装 jupyter kernel,并命名
python -m ipykernel install --user --name pyenv --display-name "Python3(pyenv)"
# 在主环境中打开 jupyterlab
conda deactivate
# 注意这里尝试退出虚拟环境,并进入到主环境,主环境以 base 显示,如果没有显示任何环境名,可以使用如下命令进入主环境
conda activate
# 打开 jupyterlab
# jupyterlab
# 启动 Jupyter-notebook(先设置工作环境目录)
cd /path/to/jupyter-notebook-home
nohup jupyter-notebook --ip=127.0.0.1 --port 8080 --no-browser > /dev/null 2>&1 &
jupyter notebook --notebook-dir=${work_path} --ip=127.0.0.1 --port 8088
|
卸载不想要的 jupyter kernel#
bash
1
2
3
| jupyter kernelspec list
jupyter kernelspec uninstall delete_env_name
|
Anaconda环境问题解决#
ipynb文件过大,导致加载慢#
加载慢大多是因为 ipynb 运行结果多导致的,可以尝试清空每个单元格的结果。通过命令行,可以实现:
# 保留原 ipynb,导出一个没有输出结果的 ipynb
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --output=NotebookNoOut large_ipynb.ipynb
# 直接清空 ipynb 的输出结果
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace large_ipynb.ipynb
环境移植#
从开发环境部署生产环境或者迁移到新主机时,需要重新搭建环境。那么,此时就会涉及到运行环境的依赖移植。
纯 pip 安装的包环境移植#
bash
1
2
3
4
5
6
| # 提取开发环境的依赖包列表(假如你有多个项目在同一个环境开发,可能导出一些不需要的依赖包信息)
# 因此建议开发时手动创建编辑 requirements.txt 依赖
pip list --format=freeze > requirements.txt
# 在新环境安装依赖方法
pip install -r requirements.txt
|
纯 conda 安装包环境移植#
bash
1
2
3
4
5
6
7
8
9
10
| # 切换到需要移植的虚拟环境
conda activate <venv>
# 把环境信息写入环境配置文件
conda list --export > requirements.txt
# or
conda list -e > requirements.txt
# 新环境安装依赖方法
conda create --name <venv> --file requirements.txt
|
conda 和 pip 混合安装包环境移植#
bash
1
2
3
4
5
6
7
8
| # 切换到需要移植的虚拟环境
conda activate <venv>
# 把环境信息写入环境配置文件
conda env export > environment.yaml
# 新环境安装依赖方法
conda env create -f environment.yaml
|
移植到无网络环境机器上#
前面介绍的都是依赖信息的提取,然后在新环境中通过网络下载依赖包安装。但一些生产环境是不能链接互联网的,只能将依赖包整体打包后移植到新环境。
移植也分如下情况:
- 同构环境:比如同是X86_64架构环境,此时移植简单。
- 异构环境:开发环境是X86_64结构,生产环境是ARM架构,此时就无法直接移植。
虽然pip
支持下载安装包的--platform
设置平台选项,但并不是所有依赖包都支持这个选项。
异构移植方法#
- 找一个与目标架构主机相同,且链接外网的主机系统A。
- 在A系统中下载依赖包,并打包安装包。
- 将安装包传输到目标主机系统中,安装这个安装包。
bash
1
2
3
4
5
6
7
8
| venv_name="myenv"
# 在与目标主机同架构系统中 下载安装包到 packages 目录
python -m venv $venv_name
source $venv_name/bin/activate
pip download -r requirements.txt -d packages
# 压缩打包
tar -czvf env_and_packages.tar.gz $venv_name packages requirements.txt
|
接下来将打包的文件传输到目标系统(比如SCP/FTP等网络传输方法),传输到目标系统后,开始安装:
bash
1
2
3
4
5
6
7
8
9
10
11
| venv_name="myenv"
# 解压
tar -xzvf env_and_packages.tar.gz
# 此时得到的 $venv_name 环境目录和安装包
#先激活新的虚拟环境
source $venv_name/bin/activate
# 重新安装依赖包解决各种问题 --no-index选项表示不从PyPI下载包,--find-links=packages选项指定本地包的路径。
pip install --no-index --find-links=packages -r requirements.txt
|
此时,虚拟环境前已完成,可以运行项目代码了。
同构迁移方法#
相比异构迁移方法,少了更换一个中间系统的过程,但下载依赖包、打包传输、安装的过程是一样的,这里就不再详述了。