1
2
3
4
5
6
7
8
9
title: 软件学习-conda
tags:
- 软件学习
- conda
categories:
- 软件学习
- conda
abbrlink: 5375f878
date: 2023-04-14 08:52:52

介绍conda的使用教程

conda 介绍

conda 就是一个软件包安装管理系统,方便安装各种软件。

Anaconda 与 Miniconda 的差别。

Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,就是把很多常用的不常用的库都给你装好了。

Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。就只包含最基本的东西,其他的库得自己装。

个人倾向于使用 Miniconda

miniconda 安装

先下载一个 bash 脚本

1
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

如果 wget 不行,可以尝试使用 curl 进行下载,或者手动下载然后上传到服务器

1
curl -O https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

运行如下代码进行安装 miniconda

1
bash Miniconda3-latest-Linux-x86_64.sh

按照提示操作:

  • 阅读并同意许可协议 (输入 “yes”)。
  • 选择安装路径(我这里改为 /data/software/miniconda3)。
  • 选择“yes”以初始化 Miniconda。

安装完成后刷新一下环境变了,通过查看 conda 版本确定是否安装成功。

1
2
source ~/.bashrc
conda --version

添加 channel

清华大学的 Conda 镜像源包含了许多常用的包和工具,您可以通过以下命令将其添加为 Conda 的默认 Channel。

执行以下命令将清华镜像源添加到 Conda 配置中:

1
2
3
4
5
6
7
8
9
10
# 1. 生成 .condarc 配置文件(若不存在)
conda config --set show_channel_urls yes

# 2. 添加清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

# 3. 设置优先级(可选)
conda config --set channel_priority flexible

通过运行以下命令来查看当前 Conda 配置的 Channels:

1
conda config --show channels

通过下面的命令可以一键删除所有已添加的频道(包括镜像源),恢复默认的 defaults 频道。

这个是我发现有些时候用 清华源会导致包安装错误,出现 File not valid: file size doesn't match expectation 的问题,但是恢复为默认的 defaults 频道就没有问题。

1
conda config --remove-key channels

设置环境变量-root

root 安装 conda 后只是修改 root 账号本身的 .bashrc 文件,也就是只是修改了 root 账号的环境变量,如果要使得所有用户都能使用 Miniconda(而不只是某个特定用户),可以将 Miniconda 的路径添加到系统的全局配置文件中。

编辑 /etc/profile 文件,添加 Miniconda 路径

1
vi /etc/profile

我的做法是直接将 root 的 .bashrc 文件中关于 conda 的内容复制黏贴过来,放到最后面,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/data/software/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/data/software/miniconda3/etc/profile.d/conda.sh" ]; then
. "/data/software/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/data/software/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<

这样做不太好,这样做会使得所有账户都用 root 的 conda 环境,只要设置一下环境变量就行。

1
export PATH="/data/software/miniconda3/bin:$PATH"

然后 source 一下,使配置生效

1
source /etc/profile

切换成别的普通用户账号,可以通过以下命令检查是否成功将 Miniconda 路径添加到 $PATH

1
echo $PATH

更新环境中的所有的可更新包

用下面命令更新所有包

1
conda update --all -y

何时需要使用这个命令

我是一开始就遇到依赖冲突了,conda 应该安装的不同的 sqlite 版本不一致导致了冲突,使用了这个命令就好了 。并且运行这个命令前,R 版本只能安装 4.4.2 ,运行后便升级为 4.4.3 。

场景 推荐频率 说明
环境维护 每月1-2次 保持包的最新稳定状态
解决依赖冲突 遇到问题时 修复因版本滞后导致的问题
安全更新 安全公告发布后 及时修补漏洞
准备共享环境 导出环境前 确保环境配置是最新状态

更新 python (其它软件通用)

安装 conda 会自带 python ,应该是 conda 能支持的最新的

  1. 检查当前 Python 版本

首先,检查当前环境中 Python 的版本,以确认您需要更新:

1
conda list python

1
python --version

这会显示当前环境中安装的 Python 版本。

  1. 更新 Conda

更新 Conda 本身,确保使用的是最新版本的 conda

1
conda update conda
  1. 更新 Python

然后,您可以更新 Python 版本。您可以选择指定您需要的 Python 版本,或者让 Conda 更新到可用的最新版本(Conda 可用的最新版本可能会落后于实际最新版本,比如 python 现在的最新版本是 3.13 ,但是我an)。

​ 3.1 更新到最新版本的 Python

1
conda update python

​ 3.2 安装指定版本的 Python

如果您想更新到特定版本的 Python,例如 Python 3.9.5 (如果是降低版本,最好还是在一个虚拟环境中安装,避免弄乱主环境):

1
conda install python=3.9.5

这将安装您指定版本的 Python,同时更新环境中的其他依赖包。

  1. 验证更新

更新完成后,您可以通过以下命令验证 Python 的版本是否已更新:

1
python --version

或者:

1
conda list python
  1. 如果遇到依赖问题

有时更新 Python 版本可能会导致依赖包的兼容性问题。您可以通过创建一个新的环境来避免这些问题:

1
2
3
conda create --name new_env python=3.12.9
conda activate new_env # 激活环境
conda deactivate # 退出环境

这样会创建一个新的环境,使用您指定的 Python 版本。

安装 python 包

建议优先使用 conda 安装,只有在conda 中没有的情况下才用 pip 安装,因为二者之间可能产生冲突。

安装 R

先查找一下 r

1
conda search r

安装 r

1
conda install -c conda-forge r=4.4

看一下版本

1
2
which R
R --version

安装 R 包

在 Conda 环境中安装 R 后,优先通过 conda 安装 R 的常用包,其次通过 install.packages() 安装。

在 conda 中的 R 包命名规则为:Conda 中的 R 包名前缀为 r-(如 r-dplyr),Bioconductor 包前缀为bioconductor-

例如,安装常用的 R 包 ggplot2

1
conda install r-ggplot2

我之前一直使用 install.packages() 安装R包。

重装conda

重装系统

如果是要重装系统了,那么有一个简单的方法可以保存原来的 conda 环境,首先我们将原来的 miniconda3 安装包 和 home 路径下的 .bashrc.condarc (如果是 root ,则可能还有 /etc/profile )保存下来。

之后在原来的位置(注意,必须是原来的位置)复制黏贴原来的 miniconda3 安装包 ,修改 home 路径下的 .bashrc.condarc文件即可。

conda 崩溃

如果是 conda 崩溃了,那么只能保存 conda 中还有用的部分,比如R 包(*/miniConda/miniconda3/lib/R/library),虚拟环境(*/miniConda/envs)。

安装其它软件

bcftools

1
2
3
4
5
conda search -c bioconda -c conda-forge bcftools

conda install -c bioconda -c conda-forge bcftools=1.21

bcftools --version

shapeit4

1
2
3
4
5
6
7
8
9
10
conda create -n shapeit4
conda activate shapeit4

conda search shapeit4
conda install shapeit4=4.2.2

# 设置环境变量,尚未修改路径
ln -s /opt/miniconda3/envs/shapeit4/bin/shapeit4 /usr/local/bin

conda deactivate

个人账户安装 shapeit4 时遇到报错,如下,暂时无法解决。

1
critical libconda filesystem error: cannot copy symlink: Invalid argument [/data/zhouziwen/software/miniconda3/pkgs/ncurses-6.5-h2d0b736_3/bin/captoinfo] [/data/zhouziwen/software/miniconda3/envs/shapeit4/bin/captoinfo]

安装一下 gcc , g++

1
2
conda install -c conda-forge gcc
conda install -c conda-forge gxx

检查一下

1
2
gcc --version
g++ --version

设置一下环境变量

1
2
3
# 永久设置(添加到 ~/.bashrc)
echo 'export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

在 Bash 脚本中激活 Conda 环境

方法一:使用 source加载 Conda 初始化脚本(推荐)

这里我测试了一下,用这个方法就行

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

# 1. 加载 Conda 初始化脚本
source "/path/to/miniconda3/etc/profile.d/conda.sh"

# 2. 激活环境
conda activate snakemake

# 3. 执行命令
snakemake --cores 4

方法二:使用 eval初始化

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

# 初始化 Conda
eval "$(conda shell.bash hook)"

# 激活环境
conda activate snakemake

# 执行命令
snakemake --cores 4
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2025 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信