Linux基础 介绍Conda
本文最后更新于 240 天前,如有失效请评论区留言。

本博客由Faconhost大力赞助!如何更快地访问本站?有需要可加电报群获得更多帮助。本博客用什么VPS?创作不易,请支持苯苯!推荐购买本博客的VIP喔,10元/年即可畅享所有VIP专属内容!

日志

  • 2023-02-16:添加设置默认环境的方法(仅windows 10)

前言

如果你使用过python进行软件开发,很大概率接触过Conda。这是因为Python有2大版本——Python 2和Python 3,两个版本在某些地方是不兼容的;因此,如果你的工作环境比较复杂,就会发现Python环境配置是一件很麻烦的事。新开发的主流软件基本上都已经使用Python 3,但少数老代码/老软件可能需要在Python 2的环境进行。

此外,受限于开发者对软件兼容性的支持,某个用户的复杂需求甚至需要配置多个不同的python或者其它环境来保证软件正常运行。比如,最近更新的CUDA 11.6/Pytorch 2.0对python版本的要求甚至是一个比较小的区间:

msedge_9M5fNPjygf

因此,开发者和用户需要一种工具,其只要简单的操作就可以自动化配置多种开发环境而基本不影响主机的原生环境。这也是Conda的设计初衷。在Linux里,Conda是一个十分流行的环境配置工具,操作简单,中英文教程多如牛毛,对小白十分友好。

Conda支持三大PC操作系统(Windows、Linux、MacOS)。对我个人而言,当搭建一些生物信息学pipeline时,往往需要配置多种环境;而生物信息学的大多数软件都是运行在Linux上面,因此我主要是在Linux里面使用Conda。平时我使用m2w或者运行某些深度学习的练习代码时,也会用到Conda的Windows版本,个人觉得不如Linux版本稳定。考虑到初识Linux系统的小伙伴可能没听说过Conda,所以这里作简单的介绍。如果你觉得自己需要经常使用不同的软件环境,本小节还是值得一看的,否则可以忽略之 (ฅ´ω`ฅ)

老实说,我也只是轻度使用Conda,并没有仔细地研究过它的高级用法。不过,Conda的用户手册十分详细,有高级需要的小伙伴可以自行探索和学习。下面我们来简单地了解一下Conda吧!

msedge_Vfkt1NZ2EZ

测试环境

用甲骨文大盘鸡:

uname -a # Linux instance-XXXXXXX-0742 5.15.0-1011-oracle #15-Ubuntu SMP Fri Jun 10 12:21:49 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

安装Conda

对个人用户来说,有Anaconda和miniconda可以选,后者顾名思义就是miniconda只安装一些主要的包,没有Anaconda那么齐全。官方是这样建议的:

The fastest way to obtain conda is to install Miniconda, a mini version of Anaconda that includes only conda and its dependencies. If you prefer to have conda plus over 7,500 open-source packages, install Anaconda.
We recommend you install Anaconda for the local user, which does not require administrator permissions and is the most robust type of installation. You can also install Anaconda system wide, which does require administrator permissions.

因为VPS本来也是空间有限的,因此我建议只装miniconda试用一下。官方的安装sh脚本在此,要按CPU架构选择不同的脚本:https://docs.conda.io/en/latest/miniconda.html#linux-installers

msedge_frFP3uTsZy

首先,我们创建一个新的文件夹:

mkdir -p ~/miniconda3 && cd ~/miniconda3 

下载安装miniconda的sh脚本。由于甲骨文VPS是aarch64,我这里选的aarch64架构的miniconda下载链接:https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-aarch64.sh 。这个链接应根据实际情况进行替换。

# 下载miniconda的安装脚本
wget -bc -o conda.log -T 120 -t inf https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-aarch64.sh

运行脚本安装minicona

bash *.sh

下面是我安装miniconda的记录:

Do you accept the license terms? [yes|no] # 输入yes
Miniconda3 will now be installed into this location: /root/miniconda3 # 选安装目录。按需要输入即可
... # 过程应该挺简单的

安装好后,观察一下conda的版本:

conda --version # conda 4.12.0

即代表安装成功。

配置Conda

Conda有一个基本环境,名字叫base。你可以通过下面命令

conda activate base 

或:

source ~/.bashrc

激活conda的base环境。如图所示,激活后前面会出现(base)字样:

MobaXterm1_CHS_leUPoKaqRU

表明base环境已经激活成功。

conda的主要配置可以通过操作~/.condarc文件来设置,比如更改镜像。如果你的VPS在国内,可以尝试添加清华镜像

vim ~/.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

:wq保存退出。

由于我的甲骨文是在国外,不需要更改镜像。我们观察一下python的安装位置:

which python # /root/miniconda3/bin/python

环境

conda可以配置多个环境(environment)。我们可以观察一下自己的conda有多少个环境:

conda info --envs
# conda environments:
#
# base                  *  /root/miniconda3
# py3.7.6                  /root/miniconda3/envs/py3.7.6

或者可以使用该命令:

conda env list

其中的*代表正在使用的环境。我还配置了一个名为py3.7.6的环境,当时是为了测试m2w用的。这里我再创建一个名为test的环境,它需要python 3.8.16(你可以在这里查看python的历史版本)。你可以输入以下命令:

conda create -n test python=3.8.16 -y

这里的-y表示自动跳过手动确认(与apt/apt-get的用法类似)。日志大致如下:

Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.12.0
  latest version: 23.1.0

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /root/miniconda3/envs/test

  added / updated specs:
    - python=3.8.16


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2023.01.10 |       hd43f75c_0         120 KB
    certifi-2022.12.7          |   py38hd43f75c_0         149 KB
    libffi-3.4.2               |       h419075a_6         135 KB
    ncurses-6.4                |       h419075a_0         1.1 MB
    pip-22.3.1                 |   py38hd43f75c_0         2.7 MB
    python-3.8.16              |       h89984f6_2        12.4 MB
    setuptools-65.6.3          |   py38hd43f75c_0         1.1 MB
    sqlite-3.40.1              |       hf533066_0         1.4 MB
    xz-5.2.10                  |       h998d150_1         444 KB
    ------------------------------------------------------------
                                           Total:        19.7 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-aarch64::_libgcc_mutex-0.1-main
  _openmp_mutex      pkgs/main/linux-aarch64::_openmp_mutex-5.1-51_gnu
  ca-certificates    pkgs/main/linux-aarch64::ca-certificates-2023.01.10-hd43f75c_0
  certifi            pkgs/main/linux-aarch64::certifi-2022.12.7-py38hd43f75c_0
  ld_impl_linux-aar~ pkgs/main/linux-aarch64::ld_impl_linux-aarch64-2.38-h8131f2d_1
  libffi             pkgs/main/linux-aarch64::libffi-3.4.2-h419075a_6
  libgcc-ng          pkgs/main/linux-aarch64::libgcc-ng-11.2.0-h1234567_1
  libgomp            pkgs/main/linux-aarch64::libgomp-11.2.0-h1234567_1
  libstdcxx-ng       pkgs/main/linux-aarch64::libstdcxx-ng-11.2.0-h1234567_1
  ncurses            pkgs/main/linux-aarch64::ncurses-6.4-h419075a_0
  openssl            pkgs/main/linux-aarch64::openssl-1.1.1s-h2f4d8fa_0
  pip                pkgs/main/linux-aarch64::pip-22.3.1-py38hd43f75c_0
  python             pkgs/main/linux-aarch64::python-3.8.16-h89984f6_2
  readline           pkgs/main/linux-aarch64::readline-8.2-h998d150_0
  setuptools         pkgs/main/linux-aarch64::setuptools-65.6.3-py38hd43f75c_0
  sqlite             pkgs/main/linux-aarch64::sqlite-3.40.1-hf533066_0
  tk                 pkgs/main/linux-aarch64::tk-8.6.12-h241ca14_0
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
  xz                 pkgs/main/linux-aarch64::xz-5.2.10-h998d150_1
  zlib               pkgs/main/linux-aarch64::zlib-1.2.13-h998d150_0



Downloading and Extracting Packages
libffi-3.4.2         | 135 KB    | ######################################################################################################################## | 100%
setuptools-65.6.3    | 1.1 MB    | ######################################################################################################################## | 100%
ca-certificates-2023 | 120 KB    | ######################################################################################################################## | 100%
certifi-2022.12.7    | 149 KB    | ######################################################################################################################## | 100%
ncurses-6.4          | 1.1 MB    | ######################################################################################################################## | 100%
python-3.8.16        | 12.4 MB   | ######################################################################################################################## | 100%
xz-5.2.10            | 444 KB    | ######################################################################################################################## | 100%
pip-22.3.1           | 2.7 MB    | ######################################################################################################################## | 100%
sqlite-3.40.1        | 1.4 MB    | ######################################################################################################################## | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

这时,我们可以这样激活这个环境:

conda activate test

如图:

MobaXterm1_CHS_CXDTWlJ3Z3

此时环境名已经由base变成了test。我们可以检查一下python的安装位置:

which python # /root/miniconda3/envs/test/bin/python。原来是base时路径为/root/miniconda3/bin/python

版本也已经发生了变化:

python --version # Python 3.8.16

pip的位置也是变化的:

which pip # /root/miniconda3/envs/test/bin/pip

如果你想切换到其它环境,只要:

# conda activate <环境名> 。以base为例
conda activate base

如果想退出conda,只要:

conda deactivate

如图,(base)消失了,代表已经退出环境 :

MobaXterm1_CHS_8qB2DUfUNJ

设置默认环境

Windows 10

打开此电脑——属性——高级系统设置,设置环境变量

NVIDIA_Share_f4kbNrfQux

将地址添加到用户的环境变量Path(有些电脑可能是PATH):

image-20230216094058423

其中,这个py3.7.6是我想要激活的默认环境

Code_1uIFFxI1Wq

设置完成后,点击确定应用等按钮,重启Windows 10即可生效。之后进入power shell中,虽然前面没有类似(base)这种标签,但其实已经生效了:

Code_ZqRNEREYLh

这种方案其实不是很优雅,因为它并没有充分地利用conda自身的特性,而是仅利用win10自己的特性。以后我再找找更好的方法,目前暂时凑合一下 (ฅ´ω`ฅ)

常用命令

conda create -n bioinf  # 创建小环境(耐心等等)
conda info --envs # 查看小环境
conda activate [小环境名称] # 此时可以进入小环境。此后每次安装软件,均由conda自动安排位置。
conda remove -n XXX --all # 删除环境

conda install [软件名] # 安装软件
conda uninstall [软件名] # 卸载软件

conda install python=3.10 # 安装特别版本的python

你可以用conda命令查看基本用法:

$ conda
usage: conda [-h] [-V] command ...

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
  command
    clean        Remove unused packages and caches.
    compare      Compare packages between conda environments.
    config       Modify configuration values in .condarc. This is modeled after the git config command. Writes to the user .condarc file (/root/.condarc) by
                 default.
    create       Create a new conda environment from a list of specified packages.
    help         Displays a list of available conda commands and their help strings.
    info         Display information about current conda install.
    init         Initialize conda for shell interaction. [Experimental]
    install      Installs a list of packages into a specified conda environment.
    list         List linked packages in a conda environment.
    package      Low-level conda package utility. (EXPERIMENTAL)
    remove       Remove a list of packages from a specified conda environment.
    uninstall    Alias for conda remove.
    run          Run an executable in a conda environment.
    search       Search for packages and display associated information. The input is a MatchSpec, a query language for conda packages. See examples below.
    update       Updates conda packages to the latest compatible version.
    upgrade      Alias for conda update.

optional arguments:
  -h, --help     Show this help message and exit.
  -V, --version  Show the conda version number and exit.

conda commands available from other packages:
  content-trust
  env

功能还挺复杂的,就不一一说明了。

小结

作为一个重要的基础工具,还是有必要向刚刚开始接触Linux的小伙伴介绍的。按需食用即可!

---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍

感谢Faconhost的友情赞助 (ฅ´ω`ฅ) 本博客基于m2w创作。版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。VIP内容严禁转载!由于可能会成为AI模型(如chatGPT)的训练样本,本博客禁止将AI自动生成内容作为文章上传(特别声明时除外)。如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租请留言 | 博客VPS | 致谢渺软公益CDN |

评论

  1. Hi~ o(* ̄▽ ̄*)ブ
    Windows Edge 122.0.0.0
    8 月前
    2024-3-26 12:21:04

    苯苯大大你好!,前言里CO( U)DA 11.6/Pytorch 2.0有个笔误喔

    • 博主
      Hi~ o(* ̄▽ ̄*)ブ
      Windows Edge 123.0.0.0
      8 月前
      2024-3-28 11:59:26

      好的,谢谢提醒 (~ ̄▽ ̄)~

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇