Miniconda3 安装与使用¶
约 922 个字 190 行代码 预计阅读时间 5 分钟
-
Miniconda3: Python 环境管理工具,轻量级 Anaconda 发行版;与完整的 Anaconda 发行版相比,Miniconda 只包含了最基本的组件,体积小,推荐在课题组服务器中安装与使用。
-
参考资料
安装与卸载¶
安装¶
# Linux
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# macOS
brew install miniconda
# 超算平台
module load miniconda
- 按
Enter
键,输入yes
:- 自定义设置 Miniconda3 安装路径,如:
~/src/miniconda3
- 快结束安装时,会提示
Do you wish the installer to initialize Miniconda3
- 输入
yes
,其会在~/.bashrc
或~/.zshrc
添加以下内容,以后每次登录可直接使用conda
- 若输入
no
,可之后运行命令conda init bash/zsh
- 自定义设置 Miniconda3 安装路径,如:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/ysl/src/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/ysl/src/miniconda3/etc/profile.d/conda.sh" ]; then
. "/home/ysl/src/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/home/ysl/src/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
- 安装完成后,登录会默认激活 base 环境,可通过以下命令取消(建议取消)
换源¶
- conda 换源
- conda 默认使用官方源(conda-forge)进行 package 安装和更新,但经常下载速度较慢。可以通过更换国内镜像源(如 清华镜像源)加速下载
- 有些 package 及其最新版本只能通过官方源安装(如 compilers),因此有时需留意某些 package 的安装要求
备份 ~/.condarc
,在 ~/.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/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
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
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
conda 设置相关命令:
# 查看 conda 相关设置
conda config --show
conda config --show-sources
# 获取指定配置
conda config --set key value
conda config --add key value # 添加
conda config --remove key value # 移除
# key value
channels <CHANNELNAME> # conda 源
- pip 换源:pypi 清华镜像源
# 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
# 临时不使用镜像源
pip install --no-index package_name
# 设为默认
python -m pip install -U pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 删除镜像源
pip config unset global.index-url
pip config unset global.extra-index-url
# 查看镜像源
pip config list
卸载¶
rm -rf miniconda3
,将~/.bashrc
或~/.zshrc
中的conda initialize
语句删除或注释,source
或重新登录使其生效
使用¶
conda 环境变量¶
写 Shell 或 Python 相关脚本时可能会用到以下 conda 环境变量:
环境变量 | 说明 |
---|---|
CONDA_DEFAULT_ENV |
当前激活的虚拟环境的名称 |
CONDA_PREFIX |
当前激活的虚拟环境的路径 |
CONDA_EXE |
conda 可执行文件路径 |
CONDA_PYTHON_EXE |
当前激活的虚拟环境的 Python 可执行文件路径 |
CONDA_PROMPT_MODIFIER |
在命令行提示符中显示的当前环境的信息。包含环境名称、环境类型等(如会输出 (base) 信息) |
CONDA_SHLVL |
当前激活的 Conda 环境的嵌套深度。如果没有激活的环境,则为 0 |
Miniconda3 目录结构¶
miniconda3
├── bin/
├── compiler_compat/
├── condabin/
├── conda-meta/
├── envs/
├── etc/
├── include/
├── lib/
├── LICENSE.txt
├── licensing/
├── man/
├── sbin/
├── share/
├── shell/
├── ssl/
├── x86_64-conda_cos7-linux-gnu/
└── x86_64-conda-linux-gnu/
部分目录含义:
bin/ # 可执行文件目录
envs/ # 存储虚拟环境目录
pkgs/ # 存储下载的 package,以便在安装和更新时使用
condabin/ # 其中的辅助脚本和可执行文件用于配置和管理 miniconda3
etc/ # 含配置文件,允许自定义和配置 miniconda3 的行为,etc/profile.d/conda.sh
shell/ # 用于配置 Shell 提示符,提供有关当前环境和激活的环境的信息
base
之外的虚拟环境 packages 路径:
miniconda3/envs/<conda_env>/lib/pythonX.X/site-packages
# --user 安装
~/.conda/envs/<conda_env>/lib/pythonX.X/site-packages
常用 conda 命令¶
- 虚拟环境相关
# 创建虚拟环境
# 方式 1
conda create -n <ENVNAME> python=3.X
# 方式 2
conda env create -f conda-env.yml
# 查看已安装的虚拟环境
conda env list
conda info -e
# 激活环境
conda activate <ENVNAME>
# 退出环境
conda deactivate
# 删除虚拟环境
conda remove -n <ENVNAME> --all
# 重命名虚拟环境名称
conda rename -n <ENVNAME> <NEWENVNAME>
# 从已有环境克隆新环境
conda create --clone <ENVNAME> -n <NEWENVNAME>
- packages 相关
conda install <package> # 安装 package
conda list # 列出已安装 package
conda list <package> # 查看具体 package 信息
conda update <package> # 更新 package
conda search <package> # 搜索可用 package
- 删除未使用的 packages 和缓存(缓存路径
~/.conda/pkgs/
**)
conda clean -i # 删除索引缓存
conda clean -p # 删除未使用的 packages
conda clean -a # 删除所有
--dry-run # 模拟运行,不实际删除
常用 pip 命令¶
- 安装 package
# 安装并更新 PyPI package
pip install -U <package>
# 本地安装
pip install git+url
pip install -r requirements.txt
pip install .
pip install -e . # editable mode
python setup.py install
pip install ".[test]"
# 卸载
pip uninstall <package> # 可添加 -y 参数
- 常用 packages:多个 packages 一行命令安装可能出现报错,建议单个安装
- 列出已安装 packages
- 查看具体 package 信息:该
pip
命令比conda list <package>
命令更详细,可以查看 package 的版本、安装路径、依赖关系等信息
pip show <package>
# 示例
Name: scikit-learn
Version: 1.3.0
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author:
Author-email:
License: new BSD
Location: /home/yslarch/src/miniconda3/lib/python3.10/site-packages
Requires: joblib, numpy, scipy, threadpoolctl
Required-by:
用 venv 创建虚拟环境¶
- 使用
venv
创建轻量级 “虚拟环境” - VSCode 的 Python 插件无法直接识别由
venv
生成的虚拟环境,需手动输入解释器路径
uv¶
-
uv:快速安装 Python package
-
安装
# 安装
# Linux 安装速度快,推荐
curl -LsSf https://astral.sh/uv/install.sh | sh
# macOS
brew install uv
# cargo 安装速度慢,不推荐
cargo install --git https://github.com/astral-sh/uv uv
uv self update # 更新
uv cache prune # 删除缓存
- 使用
uv venv # 创建虚拟环境 .venv/
source .venv/bin/activate # 激活
deactivate # 取消
uv pip install <package> # 安装 package;与 pip 基本一致
mamba¶
-
mamba:Conda 平替,在解析和安装包时比 Conda 快得多
-
micromamba 类似 miniconda,使用与 Conda 非常类似,配置文件可使用已存在的
~/. condarc
-
某些情况下会出现问题?(个人不再使用)
# 安装
brew install micromamba # macOS
# Linux 只会安装可执行文件
curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba
# 配置根路径,虚拟环境将安装在 $MAMBA_ROOT_PREFIX/envs/
export MAMBA_ROOT_PREFIX=${HOME}/opt/micromamba
# 初始化当前 Shell
eval "$(micromamba shell hook --shell zsh)"
# 使用
micromamba self-update # 更新
相关问题¶
虚拟环境使用¶
-
当有多种不同的程序,(如 atomate、sqsgen、scikit-learn 等),建议根据自身需求各自创建其虚拟环境使其互相隔离,而不是都装在 conda 的默认 base 环境,不要嫌切换环境麻烦,不同程序之间 package 之间的依赖不同,装在一起很容易出问题。
-
base 环境可以装一些自己常用的 package(如个人常使用 pymatgen、ase 等)
-
给离线安装的 conda 环境(其环境名是路径)添加环境名
conda activate ~/src/deepmd-kit
# 添加符号链接
ln -s path/to/project path/to/miniconda3/envs/<env_name>
conda activate <env_name>
- Linux conda 当前用户创建的虚拟环境名消失,只有 root 的:
~/.zshrc
中的conda init
代码中的相关路径变成了 root 的,将其改回当前用户的路径