❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/286/

1. anaconda介绍

1.1 个人对anaconda的理解

个人认为,anaconda就是一个包含python相关包和一些实用工具的集合,例如,我们可以使用anaconda进行Python环境的管理,使得在运行不同的程序时候使用不同的环境,极大避免了一些环境的依赖冲突;我们可以使用jupyter notebook或者jupyter lab等可视化地调试我们的代码;我们可以使用conda命令安装包,解决一些复杂包的依赖问题…
以上这些,不用anaconda,只依靠python我们也可以做到,但是这个过程可能会遇到一系列问题,如不同版本的冲突问题。anaconda将这些资源整合,统一到一个软件里面,安装了anaconda,本质上就是安装了上述的一系列软件,且一键安装,不会出错,减少了分析人员不必要的麻烦。

1.2 来自网络资源的介绍

Anaconda,中文大蟒蛇,是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。Anaconda是包管理器和环境管理器,Jupyter可以将数据分析的代码、图像和文档全部组合到一个web文档中。
anaconda 网站 logo
Anaconda是一个免费开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda致力于简化包管理和部署。Anaconda的包使用软件包管理系统Conda进行管理。超过1200万人使用Anaconda发行版本,并且Anaconda拥有超过1400个适用于Windows、Linux和MacOS的数据科学软件包。
总结Anaconda的三大特点:

  1. 内置python,高度集成python数据科学生态
  2. 拥有强大的包管理工具-conda
  3. 可用超过600个python数据科学库

默认环境 /用户名/anaconda3

已经安装了 Python,那么为什么还需要 Anaconda?有以下3个原因:
1)Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。
2)管理包
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。
在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。
3)管理环境
为什么需要管理环境呢?
比如你在A项目中用了 Python 2,而新的项目B老大要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候 conda就可以帮助你为不同的项目建立不同的运行环境。
还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本,你要做的应该是,为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。

2. anaconda安装

2.1 anaconda软件包下载

点击标题链接即可进入anaconda官网的下载界面,然后下滑到最下面,看到如下界面:
anaconda 官网下载界面
老版本下载链接:https://repo.anaconda.com/archive/
命令行下载模式下可以使用如下方法获取到下载链接:
命令行模式下载命令
然后进入命令行输入:

wget $复制到的链接,如:
wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh

即可下载文件

2.2 图形界面安装

图形界面的anaconda的安装比较简单,都是一些图形化的界面,在图形化安装的过程中一直点击下一步即可,但是有几点需要注意的地方:
(1)Windows版本安装的时候目标路径中不能含有空格,同时不能是“unicode”编码。
(2)在“Advanced Installation Options”中不要勾选“Add Anaconda to my PATH environment variable.”(“添加Anaconda至我的环境变量。”)。因为如果勾选,则将会影响其他程序的使用。如果使用Anaconda,则通过打开Anaconda Navigator或者在开始菜单中的“Anaconda Prompt”(类似macOS中的“终端”)中进行使用。
(3)除非你打算使用多个版本的Anaconda或者多个版本的Python,否则便勾选“Register Anaconda as my default Python 3.9”。

2.3 命令行安装

在使用wget命令下载好了anaconda之后,使用以下命令安装anaconda:
bash $下载好的文件名,例如:
bash Anaconda3-2022.10-Linux-x86_64.sh
出现以下说明,然后输入回车执行下一步:
Welcome to Anaconda3 2022.10

In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
接着一直回车,等license结束之后会出现:
Do you accept the license terms? [yes|no]
[no] >>> 
Please answer 'yes' or 'no':'

也没啥可不同意的,不同意不让用呀,输入yes回车

然后就让你选择安装路径了,默认是安装在/用户名/anaconda下面,如果不需要修改直接回车就可以,我一般默认安装。如果修改的话在下面输入路径,路径最好不要出现奇怪的符号。
Anaconda3 will now be installed into this location:
/用户名/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/用户名/anaconda3] >>>
然后就执行安装了,最后输出如下:
Preparing transaction: done
Executing transaction: / 

    Installed package of scikit-learn can be accelerated using scikit-learn-intelex.
    More details are available here: https://intel.github.io/scikit-learn-intelex

    For example:

        $ conda install scikit-learn-intelex
        $ python -m sklearnex my_application.py

    

done
installation finished.
Do you wish the installer to initialize Anaconda3
by running conda init? [yes|no]
让你选择是否初始化,选择yes的话以后登录进系统默认就激活了conda环境,选择no的话默认不激活conda环境,需要手动激活才能使用conda命令。

这个意思默认是no的,我接下来分别介绍选择yes或者no的时候分别如何操作。

如果选择no,则输出的界面如下:
You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:

eval "$(/root/anaconda3/bin/conda shell.YOUR_SHELL_NAME hook)" 

To install conda's shell functions for easier access, first activate, then:

conda init

If you'd prefer that conda's base environment not be activated on startup, 
   set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

Thank you for installing Anaconda3!

===========================================================================

Working with Python and Jupyter is a breeze in DataSpell. It is an IDE
designed for exploratory data analysis and ML. Get better data insights
with DataSpell.

DataSpell for Anaconda is available at: https://www.anaconda.com/dataspell

上面的大致意思就是,你没有初始化conda,不能直接使用conda命令,需要使用绝对路径的方式运行conda,即指定conda的位置(刚刚安装的位置,如果是默认则是/用户名/anaconda3/bin/conda,不是默认的话则是你安装路径/bin/conda)。
即要想运行conda命令则需要如下命令运行:

/用户名/anaconda3/bin/conda [选项] [参数]

如:

/root/anaconda3/bin/conda info --envs

但是一直这样总是很麻烦,所以还不如直接就初始化环境,输入以下命令初始化:

/root/anaconda3/bin/conda init

所以总结下来之前的那个选项还是选yes好,省时省力。

取消进入base环境
If you'd prefer that conda's base environment not be activated on startup, 
   set the auto_activate_base parameter to false: 

conda config --set auto_activate_base false

最后这句话的意思是:如果不想要进入conda的base环境,使用以下命令取消:

conda config --set auto_activate_base false

这个base环境就是如果你进入系统最左边显示一个base,则你直接进入了base环境,运行python使用的是base环境的python,取消的话进入的是系统的python环境。

例如,没有取消base环境进入的是如下界面:
(base) 用户名@计算机名:/# 

使用which python命令查看到的python位置是:

(base) 用户名@计算机名:/# which python
/用户名/anaconda3/bin/python

如果不取消还想退出base环境的话则使用如下命令即可退出:

 conda deactivate
取消base环境进入的是如下界面:
用户名@计算机名:/# 

使用which python命令查看到的python位置是:

用户名@计算机名:/# which python
/usr/bin/python

3. conda常用命令介绍

3.1 基本命令和常见命令

Tip: 一般情况,–后面接长单词的参数等同于,-接单个字母的参数,我们可以将前面带有两个短线(–)的常用命令进行缩写(并不是所有的都可以缩写),方法是取一个短线和选项的首字母。例如 --name 可以缩写成 -n,–envs 可以缩写成 -e。

(1)查看conda版本信息
conda --version
conda -V
例如:
用户名@主机名:~# conda -V
conda 22.9.0
(2)查看帮助信息
conda --help
conda -h
例如:
conda -h
输出如下:
用户名@主机名:~# conda -h
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. Use the --show-
                 sources flag to display all identified configuration locations on your computer.
    create       Create a new conda environment from a list of specified packages.
    info         Display information about current conda install.
    init         Initialize conda for shell interaction.
    install      Installs a list of packages into a specified conda environment.
    list         List installed packages in a conda environment.
    package      Low-level conda package utility. (EXPERIMENTAL)
    remove       Remove a list of packages from a specified conda environment.
    rename       Renames an existing environment.
    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.
    uninstall    Alias for conda remove.
    update       Updates conda packages to the latest compatible version.
    upgrade      Alias for conda update.
    notices      Retrieves latest channel notifications.

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:
  build
  content-trust
  convert
  debug
  develop
  env
  index
  inspect
  metapackage
  pack
  render
  repo
  server
  skeleton
  token
  verify
(3)查看conda环境和环境基本信息
conda info #查看基本信息,例如:
conda info
输出如下:
用户名@主机名:/# conda info

     active environment : None
            shell level : 0
       user config file : /root/.condarc
 populated config files : 
          conda version : 22.9.0
    conda-build version : 3.22.0
         python version : 3.9.13.final.0
       virtual packages : __linux=5.4.0=0
                          __glibc=2.27=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /root/anaconda3  (writable)
      conda av data dir : /root/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /root/anaconda3/pkgs
                          /root/.conda/pkgs
       envs directories : /root/anaconda3/envs
                          /root/.conda/envs
               platform : linux-64
             user-agent : conda/22.9.0 requests/2.28.1 CPython/3.9.13 Linux/5.4.0-125-generic ubuntu/18.04.6 glibc/2.27
                UID:GID : 0:0
             netrc file : None
           offline mode : False
conda info -e/--envs #查看conda安装的环境信息,例如:
用户名@主机名:/# conda info --envs
# conda environments:
#
base                     /root/anaconda3
(4)激活环境
conda activate [环境名称]
例如:
用户名@主机名:~# conda activate base
(base) 用户名@主机名:~# 
(5)退出环境
conda deactivate
例如:
(base) 用户名@主机名:~# conda deactivate
用户名@主机名:~# 
(6)安装python包
conda install [PackageName]
例如:
(base) 用户名@主机名:~# conda install numpy
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /root/anaconda3

  added / updated specs:
    - numpy


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-22.11.0              |   py39h06a4308_1         927 KB
    ruamel.yaml-0.16.12        |   py39h5eee18b_3         172 KB
    ruamel.yaml.clib-0.2.6     |   py39h5eee18b_1         140 KB
    ------------------------------------------------------------
                                           Total:         1.2 MB

The following NEW packages will be INSTALLED:

  ruamel.yaml        pkgs/main/linux-64::ruamel.yaml-0.16.12-py39h5eee18b_3 None
  ruamel.yaml.clib   pkgs/main/linux-64::ruamel.yaml.clib-0.2.6-py39h5eee18b_1 None

The following packages will be UPDATED:

  conda                               22.9.0-py39h06a4308_0 --> 22.11.0-py39h06a4308_1 None


Proceed ([y]/n)? y


Downloading and Extracting Packages
ruamel.yaml-0.16.12  | 172 KB    | ############################################################################################################################################### | 100% 
ruamel.yaml.clib-0.2 | 140 KB    | ############################################################################################################################################### | 100% 
conda-22.11.0        | 927 KB    | ############################################################################################################################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Retrieving notices: ...working... done

也可以给特定环境安装特定包

conda install --name [环境名称] [PackageName]
例如:
(base) 用户名@主机名:~# conda install --name base pandas
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.
(7)删除python包
conda remove -n 环境名称] [PackageName]
例如:
(base) 用户名@主机名:~# conda remove -n base pandas
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /root/anaconda3

  removed specs:
    - pandas


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    asttokens-2.0.5            |     pyhd3eb1b0_0          20 KB
    attrs-22.1.0               |   py39h06a4308_0          85 KB
    ca-certificates-2022.10.11 |       h06a4308_0         124 KB
    certifi-2022.9.24          |   py39h06a4308_0         154 KB
    conda-package-handling-1.9.0|   py39h5eee18b_1         946 KB
    conda-repo-cli-1.0.24      |   py39h06a4308_0         115 KB
    cryptography-38.0.1        |   py39h9ce1e76_0         1.3 MB
    executing-0.8.3            |     pyhd3eb1b0_0          18 KB
    flit-core-3.6.0            |     pyhd3eb1b0_0          42 KB
    fontconfig-2.14.1          |       hef1e5e3_0         284 KB
    freetype-2.12.1            |       h4a9f257_0         626 KB
    idna-3.4                   |   py39h06a4308_0          93 KB
    ipython-8.6.0              |   py39h06a4308_0         1.0 MB
    jupyter_client-7.4.7       |   py39h06a4308_0         209 KB
    jupyter_core-4.11.2        |   py39h06a4308_0          80 KB
    jupyterlab-3.5.0           |   py39h06a4308_0         4.2 MB
    libtiff-4.4.0              |       hecacb30_2         526 KB
    libwebp-1.2.4              |       h11a3e52_0          79 KB
    libwebp-base-1.2.4         |       h5eee18b_0         347 KB
    nbclassic-0.4.8            |   py39h06a4308_0         5.8 MB
    notebook-6.5.2             |   py39h06a4308_0         511 KB
    notebook-shim-0.2.2        |   py39h06a4308_0          22 KB
    openssl-1.1.1s             |       h7f8727e_0         3.6 MB
    patchelf-0.15.0            |       h6a678d5_0          97 KB
    pkginfo-1.8.3              |   py39h06a4308_0          45 KB
    pure_eval-0.2.2            |     pyhd3eb1b0_0          14 KB
    pycosat-0.6.4              |   py39h5eee18b_0          84 KB
    readline-8.2               |       h5eee18b_0         357 KB
    setuptools-65.5.0          |   py39h06a4308_0         1.1 MB
    soupsieve-2.3.2.post1      |   py39h06a4308_0          65 KB
    sqlite-3.40.0              |       h5082296_0         1.2 MB
    stack_data-0.2.0           |     pyhd3eb1b0_0          22 KB
    toolz-0.12.0               |   py39h06a4308_0         105 KB
    tornado-6.2                |   py39h5eee18b_0         590 KB
    typing-extensions-4.4.0    |   py39h06a4308_0           8 KB
    typing_extensions-4.4.0    |   py39h06a4308_0          46 KB
    tzdata-2022f               |       h04d1e81_0         115 KB
    urllib3-1.26.12            |   py39h06a4308_0         181 KB
    xz-5.2.8                   |       h5eee18b_0         429 KB
    zlib-1.2.13                |       h5eee18b_0         103 KB
    ------------------------------------------------------------
                                           Total:        24.6 MB

The following NEW packages will be INSTALLED:

  asttokens          pkgs/main/noarch::asttokens-2.0.5-pyhd3eb1b0_0 
  executing          pkgs/main/noarch::executing-0.8.3-pyhd3eb1b0_0 
  flit-core          pkgs/main/noarch::flit-core-3.6.0-pyhd3eb1b0_0 
  notebook-shim      pkgs/main/linux-64::notebook-shim-0.2.2-py39h06a4308_0 
  pure_eval          pkgs/main/noarch::pure_eval-0.2.2-pyhd3eb1b0_0 
  stack_data         pkgs/main/noarch::stack_data-0.2.0-pyhd3eb1b0_0 

The following packages will be REMOVED:

  alabaster-0.7.12-pyhd3eb1b0_0
  anaconda-2022.10-py39_0
  anaconda-project-0.11.1-py39h06a4308_0
  appdirs-1.4.4-pyhd3eb1b0_0
  arrow-1.2.2-pyhd3eb1b0_0
  astroid-2.11.7-py39h06a4308_0
  astropy-5.1-py39h7deecbd_0
  atomicwrites-1.4.0-py_0
  automat-20.2.0-py_0
  autopep8-1.6.0-pyhd3eb1b0_1
  bcrypt-3.2.0-py39h5eee18b_1
  binaryornot-0.4.4-pyhd3eb1b0_1
  bitarray-2.5.1-py39h5eee18b_0
  bkcharts-0.2-py39h06a4308_1
  black-22.6.0-py39h06a4308_0
  blosc-1.21.0-h4ff587b_1
  bokeh-2.4.3-py39h06a4308_0
  boto3-1.24.28-py39h06a4308_0
  botocore-1.27.28-py39h06a4308_0
  bottleneck-1.3.5-py39h7deecbd_0
  brotli-1.0.9-h5eee18b_7
  brotli-bin-1.0.9-h5eee18b_7
  brunsli-0.1-h2531618_0
  c-ares-1.18.1-h7f8727e_0
  cfitsio-3.470-h5893167_7
  charls-2.2.0-h2531618_0
  cloudpickle-2.0.0-pyhd3eb1b0_0
  colorama-0.4.5-py39h06a4308_0
  colorcet-3.0.0-py39h06a4308_0
  conda-pack-0.6.0-pyhd3eb1b0_0
  constantly-15.1.0-pyh2b92418_0
  cookiecutter-1.7.3-pyhd3eb1b0_0
  cssselect-1.1.0-pyhd3eb1b0_0
  curl-7.84.0-h5eee18b_0
  cycler-0.11.0-pyhd3eb1b0_0
  cython-0.29.32-py39h6a678d5_0
  cytoolz-0.11.0-py39h27cfd23_0
  daal4py-2021.6.0-py39h79cecc1_1
  dal-2021.6.0-hdb19cb5_916
  dask-2022.7.0-py39h06a4308_0
  dask-core-2022.7.0-py39h06a4308_0
  dataclasses-0.8-pyh6d0b6a4_7
  datashader-0.14.1-py39h06a4308_0
  datashape-0.5.4-py39h06a4308_1
  diff-match-patch-20200713-pyhd3eb1b0_0
  dill-0.3.4-pyhd3eb1b0_0
  distributed-2022.7.0-py39h06a4308_0
  docutils-0.18.1-py39h06a4308_3
  et_xmlfile-1.1.0-py39h06a4308_0
  fftw-3.3.9-h27cfd23_1
  flake8-4.0.1-pyhd3eb1b0_1
  flask-1.1.2-pyhd3eb1b0_0
  fonttools-4.25.0-pyhd3eb1b0_0
  fsspec-2022.7.1-py39h06a4308_0
  gensim-4.1.2-py39h295c915_0
  gmp-6.2.1-h295c915_3
  gmpy2-2.1.2-py39heeb90bb_0
  greenlet-1.1.1-py39h295c915_0
  h5py-3.7.0-py39h737f45e_0
  hdf5-1.10.6-h3ffc7dd_1
  heapdict-1.0.1-pyhd3eb1b0_0
  holoviews-1.15.0-py39h06a4308_0
  hvplot-0.8.0-py39h06a4308_0
  hyperlink-21.0.0-pyhd3eb1b0_0
  imagecodecs-2021.8.26-py39hf0132c2_1
  imageio-2.19.3-py39h06a4308_0
  imagesize-1.4.1-py39h06a4308_0
  importlib-metadata-4.11.3-py39h06a4308_0
  importlib_metadata-4.11.3-hd3eb1b0_0
  incremental-21.3.0-pyhd3eb1b0_0
  inflection-0.5.1-py39h06a4308_0
  iniconfig-1.1.1-pyhd3eb1b0_0
  intake-0.6.5-pyhd3eb1b0_0
  intervaltree-3.1.0-pyhd3eb1b0_0
  isort-5.9.3-pyhd3eb1b0_0
  itemadapter-0.3.0-pyhd3eb1b0_0
  itemloaders-1.0.4-pyhd3eb1b0_1
  itsdangerous-2.0.1-pyhd3eb1b0_0
  jdcal-1.4.1-pyhd3eb1b0_0
  jeepney-0.7.1-pyhd3eb1b0_0
  jellyfish-0.9.0-py39h7f8727e_0
  jinja2-time-0.2.0-pyhd3eb1b0_3
  jmespath-0.10.0-pyhd3eb1b0_0
  joblib-1.1.0-pyhd3eb1b0_0
  jq-1.6-h27cfd23_1000
  jupyter-1.0.0-py39h06a4308_8
  jupyter_console-6.4.3-pyhd3eb1b0_0
  jxrlib-1.1-h7b6447c_2
  keyring-23.4.0-py39h06a4308_0
  kiwisolver-1.4.2-py39h295c915_0
  lazy-object-proxy-1.6.0-py39h27cfd23_0
  libaec-1.0.4-he6710b0_1
  libbrotlicommon-1.0.9-h5eee18b_7
  libbrotlidec-1.0.9-h5eee18b_7
  libbrotlienc-1.0.9-h5eee18b_7
  libcurl-7.84.0-h91b91d3_0
  libev-4.33-h7f8727e_1
  libgfortran-ng-11.2.0-h00389a5_1
  libgfortran5-11.2.0-h1234567_1
  libidn2-2.3.2-h7f8727e_0
  libllvm11-11.1.0-h9e868ea_5
  libnghttp2-1.46.0-hce63b2e_0
  libspatialindex-1.9.3-h2531618_0
  libssh2-1.10.0-h8f2d780_0
  libunistring-0.9.10-h27cfd23_0
  libuuid-1.0.3-h7f8727e_2
  libzopfli-1.0.3-he6710b0_0
  llvmlite-0.38.0-py39h4ff587b_0
  locket-1.0.0-py39h06a4308_0
  lxml-4.9.1-py39h1edc446_0
  lz4-3.1.3-py39h27cfd23_0
  lzo-2.10-h7b6447c_2
  markdown-3.3.4-py39h06a4308_0
  matplotlib-3.5.2-py39h06a4308_0
  matplotlib-base-3.5.2-py39hf590b9c_0
  mccabe-0.7.0-pyhd3eb1b0_0
  mock-4.0.3-pyhd3eb1b0_0
  mpc-1.1.0-h10f8cd9_1
  mpfr-4.0.2-hb69a4c5_1
  mpi-1.0-mpich
  mpich-3.3.2-external_0
  mpmath-1.2.1-py39h06a4308_0
  msgpack-python-1.0.3-py39hd09550d_0
  multipledispatch-0.6.0-py39h06a4308_0
  munkres-1.1.4-py_0
  mypy_extensions-0.4.3-py39h06a4308_1
  networkx-2.8.4-py39h06a4308_0
  nltk-3.7-pyhd3eb1b0_0
  nose-1.3.7-pyhd3eb1b0_1008
  numba-0.55.1-py39h51133e4_0
  numexpr-2.8.3-py39h807cd23_0
  numpydoc-1.4.0-py39h06a4308_0
  olefile-0.46-pyhd3eb1b0_0
  oniguruma-6.9.7.1-h27cfd23_0
  openjpeg-2.4.0-h3ad879b_0
  openpyxl-3.0.10-py39h5eee18b_0
  pandas-1.4.4-py39h6a678d5_0
  panel-0.13.1-py39h06a4308_0
  param-1.12.0-pyhd3eb1b0_0
  parsel-1.6.0-py39h06a4308_0
  partd-1.2.0-pyhd3eb1b0_1
  pathspec-0.9.0-py39h06a4308_0
  patsy-0.5.2-py39h06a4308_1
  pep8-1.7.1-py39h06a4308_1
  platformdirs-2.5.2-py39h06a4308_0
  plotly-5.9.0-py39h06a4308_0
  poyo-0.5.0-pyhd3eb1b0_0
  prompt_toolkit-3.0.20-hd3eb1b0_0
  protego-0.1.16-py_0
  py-1.11.0-pyhd3eb1b0_0
  pyasn1-0.4.8-pyhd3eb1b0_0
  pyasn1-modules-0.2.8-py_0
  pycodestyle-2.8.0-pyhd3eb1b0_0
  pyct-0.4.8-py39h06a4308_1
  pycurl-7.45.1-py39h8f2d780_0
  pydispatcher-2.0.5-py39h06a4308_2
  pydocstyle-6.1.1-pyhd3eb1b0_0
  pyerfa-2.0.0-py39h27cfd23_0
  pyflakes-2.4.0-pyhd3eb1b0_0
  pyhamcrest-2.0.2-pyhd3eb1b0_2
  pylint-2.14.5-py39h06a4308_0
  pyls-spyder-0.4.0-pyhd3eb1b0_0
  pyodbc-4.0.34-py39h6a678d5_0
  pyqtwebengine-5.15.7-py39h6a678d5_1
  pytables-3.6.1-py39h77479fe_1
  pytest-7.1.2-py39h06a4308_0
  python-lsp-black-1.2.1-py39h06a4308_0
  python-lsp-jsonrpc-1.0.0-pyhd3eb1b0_0
  python-lsp-server-1.5.0-py39h06a4308_0
  python-slugify-5.0.2-pyhd3eb1b0_0
  python-snappy-0.6.0-py39h2531618_3
  pyviz_comms-2.0.2-pyhd3eb1b0_0
  pywavelets-1.3.0-py39h7f8727e_0
  pyxdg-0.27-pyhd3eb1b0_0
  qdarkstyle-3.0.2-pyhd3eb1b0_0
  qstylizer-0.1.10-pyhd3eb1b0_0
  qt-5.15.9-h06a4308_0
  qtawesome-1.0.3-pyhd3eb1b0_0
  qtconsole-5.3.2-py39h06a4308_0
  queuelib-1.5.0-py39h06a4308_0
  regex-2022.7.9-py39h5eee18b_0
  requests-file-1.5.1-pyhd3eb1b0_0
  rope-0.22.0-pyhd3eb1b0_0
  rtree-0.9.7-py39h06a4308_1
  ruamel_yaml-0.15.100-py39h27cfd23_0
  s3transfer-0.6.0-py39h06a4308_0
  scikit-image-0.19.2-py39h51133e4_0
  scikit-learn-1.0.2-py39h51133e4_1
  scikit-learn-intelex-2021.6.0-py39h06a4308_0
  scipy-1.9.1-py39h14f4228_0
  scrapy-2.6.2-py39h06a4308_0
  seaborn-0.11.2-pyhd3eb1b0_0
  secretstorage-3.3.1-py39h06a4308_0
  service_identity-18.1.0-pyhd3eb1b0_1
  smart_open-5.2.1-py39h06a4308_0
  snappy-1.1.9-h295c915_0
  snowballstemmer-2.2.0-pyhd3eb1b0_0
  sortedcollections-2.1.0-pyhd3eb1b0_0
  sortedcontainers-2.4.0-pyhd3eb1b0_0
  sphinx-5.0.2-py39h06a4308_0
  sphinxcontrib-applehelp-1.0.2-pyhd3eb1b0_0
  sphinxcontrib-devhelp-1.0.2-pyhd3eb1b0_0
  sphinxcontrib-htmlhelp-2.0.0-pyhd3eb1b0_0
  sphinxcontrib-jsmath-1.0.1-pyhd3eb1b0_0
  sphinxcontrib-qthelp-1.0.3-pyhd3eb1b0_0
  sphinxcontrib-serializinghtml-1.1.5-pyhd3eb1b0_0
  spyder-5.3.3-py39h06a4308_0
  spyder-kernels-2.3.3-py39h06a4308_0
  sqlalchemy-1.4.39-py39h5eee18b_0
  statsmodels-0.13.2-py39h7f8727e_0
  sympy-1.10.1-py39h06a4308_0
  tabulate-0.8.10-py39h06a4308_0
  tbb-2021.6.0-hdb19cb5_0
  tbb4py-2021.6.0-py39hdb19cb5_0
  tblib-1.7.0-pyhd3eb1b0_0
  tenacity-8.0.1-py39h06a4308_1
  text-unidecode-1.3-pyhd3eb1b0_0
  textdistance-4.2.1-pyhd3eb1b0_0
  threadpoolctl-2.2.0-pyh0d69192_0
  three-merge-0.1.1-pyhd3eb1b0_0
  tifffile-2021.7.2-pyhd3eb1b0_2
  tinycss-0.4-pyhd3eb1b0_1002
  tldextract-3.2.0-pyhd3eb1b0_0
  tomlkit-0.11.1-py39h06a4308_0
  twisted-22.2.0-py39h5eee18b_1
  unidecode-1.2.0-pyhd3eb1b0_0
  unixodbc-2.3.11-h5eee18b_0
  w3lib-1.21.0-pyhd3eb1b0_0
  watchdog-2.1.6-py39h06a4308_0
  werkzeug-2.0.3-pyhd3eb1b0_0
  wget-1.21.3-h0b77cf5_0
  whatthepatch-1.0.2-py39h06a4308_0
  wrapt-1.14.1-py39h5eee18b_0
  wurlitzer-3.0.2-py39h06a4308_0
  xarray-0.20.1-pyhd3eb1b0_1
  xlrd-2.0.1-pyhd3eb1b0_0
  xlsxwriter-3.0.3-pyhd3eb1b0_0
  yapf-0.31.0-pyhd3eb1b0_0
  zfp-0.5.5-h295c915_6
  zict-2.1.0-py39h06a4308_0
  zipp-3.8.0-py39h06a4308_0
  zope-1.0-py39h06a4308_1
  zope.interface-5.4.0-py39h7f8727e_0

The following packages will be UPDATED:

  attrs              pkgs/main/noarch::attrs-21.4.0-pyhd3e~ --> pkgs/main/linux-64::attrs-22.1.0-py39h06a4308_0 
  ca-certificates                     2022.07.19-h06a4308_0 --> 2022.10.11-h06a4308_0 
  certifi                          2022.9.14-py39h06a4308_0 --> 2022.9.24-py39h06a4308_0 
  conda-package-han~                   1.9.0-py39h5eee18b_0 --> 1.9.0-py39h5eee18b_1 
  conda-repo-cli                      1.0.20-py39h06a4308_0 --> 1.0.24-py39h06a4308_0 
  cryptography                        37.0.1-py39h9ce1e76_0 --> 38.0.1-py39h9ce1e76_0 
  fontconfig                              2.13.1-h6c09931_0 --> 2.14.1-hef1e5e3_0 
  freetype                                2.11.0-h70c0345_0 --> 2.12.1-h4a9f257_0 
  idna               pkgs/main/noarch::idna-3.3-pyhd3eb1b0~ --> pkgs/main/linux-64::idna-3.4-py39h06a4308_0 
  ipython                             7.31.1-py39h06a4308_1 --> 8.6.0-py39h06a4308_0 
  jupyter_client                       7.3.4-py39h06a4308_0 --> 7.4.7-py39h06a4308_0 
  jupyter_core                        4.11.1-py39h06a4308_0 --> 4.11.2-py39h06a4308_0 
  jupyterlab                           3.4.4-py39h06a4308_0 --> 3.5.0-py39h06a4308_0 
  libtiff                                  4.4.0-hecacb30_0 --> 4.4.0-hecacb30_2 
  libwebp                                  1.2.2-h55f646e_0 --> 1.2.4-h11a3e52_0 
  libwebp-base                             1.2.2-h7f8727e_0 --> 1.2.4-h5eee18b_0 
  nbclassic          pkgs/main/noarch::nbclassic-0.3.5-pyh~ --> pkgs/main/linux-64::nbclassic-0.4.8-py39h06a4308_0 
  notebook                            6.4.12-py39h06a4308_0 --> 6.5.2-py39h06a4308_0 
  openssl                                 1.1.1q-h7f8727e_0 --> 1.1.1s-h7f8727e_0 
  patchelf                                  0.13-h295c915_0 --> 0.15.0-h6a678d5_0 
  pkginfo            pkgs/main/noarch::pkginfo-1.8.2-pyhd3~ --> pkgs/main/linux-64::pkginfo-1.8.3-py39h06a4308_0 
  pycosat                              0.6.3-py39h27cfd23_0 --> 0.6.4-py39h5eee18b_0 
  readline                                 8.1.2-h7f8727e_1 --> 8.2-h5eee18b_0 
  setuptools                          63.4.1-py39h06a4308_0 --> 65.5.0-py39h06a4308_0 
  soupsieve          pkgs/main/noarch::soupsieve-2.3.1-pyh~ --> pkgs/main/linux-64::soupsieve-2.3.2.post1-py39h06a4308_0 
  sqlite                                  3.39.3-h5082296_0 --> 3.40.0-h5082296_0 
  toolz              pkgs/main/noarch::toolz-0.11.2-pyhd3e~ --> pkgs/main/linux-64::toolz-0.12.0-py39h06a4308_0 
  tornado                                6.1-py39h27cfd23_0 --> 6.2-py39h5eee18b_0 
  typing-extensions                    4.3.0-py39h06a4308_0 --> 4.4.0-py39h06a4308_0 
  typing_extensions                    4.3.0-py39h06a4308_0 --> 4.4.0-py39h06a4308_0 
  tzdata                                   2022c-h04d1e81_0 --> 2022f-h04d1e81_0 
  urllib3                            1.26.11-py39h06a4308_0 --> 1.26.12-py39h06a4308_0 
  xz                                       5.2.6-h5eee18b_0 --> 5.2.8-h5eee18b_0 
  zlib                                    1.2.12-h5eee18b_3 --> 1.2.13-h5eee18b_0 


Proceed ([y]/n)? y


Downloading and Extracting Packages
                                                                                                                                                                                          
Preparing transaction: done                                                                                                                                                               
Verifying transaction: done                                                                                                                                                               
Executing transaction: done
(8)创建python环境

详见第四章

3.2 常用命令详解

(1)conda info
conda info [-a] [--base] [-e] [-s] [--unsafe-channels]

选项:

-a, -all: 查看所有信息(不常用)。
–base:查看基环境所在路径。
-e, --envs:列出当前所有的 conda 环境。
-s, --system:列出所有的环境变量(不常用)。
–unsafe-channels:查看令牌公开的频道。
(2)conda create
conda create [-n 环境名称 | -p path] [--clone 环境名称] [-c channel_address] [PackageName]

选项:

-n, --name:我们可以根据环境名称来创建一个 conda 环境。
-p, --prefix:除了根据名称创建环境以外,我们还可以根据地址来创建 conda 环境。
–clone:--clone 主要用来克隆(复制)现有的环境。
-c, --channel:首先来介绍一下什么是 conda 频道。
(3)conda install
conda install [-n 环境名称 | -p path] [-c channel_address] [PackageName]

选项:

-n, --name:安装PackageName包的环境名称。
-p:也可以不指定环境名称,指定环境的绝对路径。
-c, --channel:频道地址,一般不指定的话默认即可。
(4)conda remove

conda uninstall 是 conda remove 的别名,我们也可以使用 conda uninstall 来移除包,方法是相同的。

conda remove [-n 环境名称 | -p path] [PackageName] [--all]

选项:

-n, --name:移除PackageName包的环境名称。
-p:也可以不指定环境名称,指定环境的绝对路径。
--all:卸载全部。
(5)conda list
conda list [-n 环境名称 | -p path] [PackageName]

选项:

-n, --name:查看python环境的环境名称。
-p:也可以不指定环境名称,指定环境的绝对路径。
(6)conda search

conda search 用来搜索指定的包。

conda search [-c channel_address] [-f] [PackageName]

选项

-c, --channel:指定的搜索频道地址。
(7)conda update

conda update 用来将一系列的包升级到最新版本。

conda update [-n 环境名称 | -p path] [PackageName] [--all]

选项:

-n, --name:移除PackageName包的环境名称。
-p:也可以不指定环境名称,指定环境的绝对路径。
--all:卸载全部。
(8)conda config

conda config 用来配置 conda 的频道,相关信息会存储在 /用户名/.condarc 文件中。

conda config --add channels [channel_address]
conda config --get                          #显示所有的配置
conda config --get [key1] [key2]            #显示指定配置
conda config --add [key] [value]            #添加新配置
conda config --set [key] [value]            #设置配置
conda config --remove [key] [value]         #删除一个配置
conda config --remove-key [key]             #删除一个key
conda config --help                         #查看帮助信息
conda config --set show_channel_urls true

4. 使用conda进行python环境管理

4.1 Anaconda、conda、pip、virtualenv的区别

(1)Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

(2)conda

conda是包及其依赖项和环境的管理工具。
适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
适用平台:Windows, macOS, Linux
用途

① 快速安装、运行和升级包及其依赖项。
② 在计算机中便捷地创建、保存、加载和切换环境。

如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——Conda官方网站

▪ conda为Python项目而创造,但可适用于上述的多种语言。
▪ conda包和环境管理器包含于Anaconda的所有版本当中。
(3)pip

pip是用于安装和管理软件包的包管理器。
pip编写语言:Python。
Python中默认安装的版本

① Python 2.7.9及后续版本:默认安装,命令为 pip
② Python 3.4及后续版本:默认安装,命令为 pip3

pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:

① “Pip installs Packages”(“pip安装包”)
② “Pip installs Python”(“pip安装Python”)
(4)virtualenv

virtualenv是用于创建一个独立的Python环境的工具。
解决问题
当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。
如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。
在共享主机时,无法在全局 site-packages 目录中安装包。
▪ virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。

(5)pip 与 conda 比较

依赖项检查
▪ pip:

① 不一定会展示所需其他依赖包。
② 安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。

▪ conda:

① 列出所需其他依赖包。
② 安装包时自动安装其依赖项。
③ 可以便捷地在包的不同版本中自由切换。

环境管理

▪ pip:维护多个环境难度较大。
▪ conda:比较方便地在不同环境之间进行切换,环境管理较为简单。

对系统自带Python的影响

▪ pip:在系统自带Python中包的更新/回退版本/卸载将影响其他程序。
▪ conda:不会影响系统自带Python。

适用语言

▪ pip:仅适用于Python。
▪ conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
(6)conda与pip、virtualenv的关系

conda结合了pip和virtualenv的功能。

4.2 使用conda进行python环境管理

(1)创建虚拟环境
创建环境

首先创建一个环境名称为test,python版本号为3.8的虚拟环境,如下所示:

conda create --name [环境名称] python=[python版本号,如3.6、3.7、3.8、3.9、3.10]
例如:
conda create --name test python=3.8
输出如下:
(base) 用户名@主机名:~# conda create --name test python=3.8                                                                                                                           
Collecting package metadata (current_repodata.json): done                                                                                                                                 
Solving environment: done                                                                                                                                                                 

## Package Plan ##

  environment location: /root/anaconda3/envs/test

  added / updated specs:
    - python=3.8


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2022.9.24          |   py38h06a4308_0         154 KB
    libffi-3.4.2               |       h6a678d5_6         136 KB
    pip-22.2.2                 |   py38h06a4308_0         2.3 MB
    python-3.8.15              |       h7a1cb2a_2        20.1 MB
    setuptools-65.5.0          |   py38h06a4308_0         1.1 MB
    ------------------------------------------------------------
                                           Total:        23.8 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main 
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu 
  ca-certificates    pkgs/main/linux-64::ca-certificates-2022.10.11-h06a4308_0 
  certifi            pkgs/main/linux-64::certifi-2022.9.24-py38h06a4308_0 
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 
  libffi             pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6 
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 
  ncurses            pkgs/main/linux-64::ncurses-6.3-h5eee18b_3 
  openssl            pkgs/main/linux-64::openssl-1.1.1s-h7f8727e_0 
  pip                pkgs/main/linux-64::pip-22.2.2-py38h06a4308_0 
  python             pkgs/main/linux-64::python-3.8.15-h7a1cb2a_2 
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 
  setuptools         pkgs/main/linux-64::setuptools-65.5.0-py38h06a4308_0 
  sqlite             pkgs/main/linux-64::sqlite-3.40.0-h5082296_0 
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0 
  xz                 pkgs/main/linux-64::xz-5.2.8-h5eee18b_0 
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 


Proceed ([y]/n)? y


Downloading and Extracting Packages
                                                                                                                                                                                          
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
输出如下:
(base) 用户名@主机名:~# conda activate test
(test) 用户名@主机名:~# 
查看环境

使用pip list或者conda list查看环境

pip list
conda list
输出如下:
(test) 用户名@主机名:~# pip list
Package    Version
---------- ---------
certifi    2022.9.24
pip        22.2.2
setuptools 65.5.0
wheel      0.37.1
(test) 用户名@主机名:~# conda list
# packages in environment at /root/anaconda3/envs/test:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
ca-certificates           2022.10.11           h06a4308_0  
certifi                   2022.9.24        py38h06a4308_0  
ld_impl_linux-64          2.38                 h1181459_1  
libffi                    3.4.2                h6a678d5_6  
libgcc-ng                 11.2.0               h1234567_1  
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
ncurses                   6.3                  h5eee18b_3  
openssl                   1.1.1s               h7f8727e_0  
pip                       22.2.2           py38h06a4308_0  
python                    3.8.15               h7a1cb2a_2  
readline                  8.2                  h5eee18b_0  
setuptools                65.5.0           py38h06a4308_0  
sqlite                    3.40.0               h5082296_0  
tk                        8.6.12               h1ccaba5_0  
wheel                     0.37.1             pyhd3eb1b0_0  
xz                        5.2.8                h5eee18b_0  
zlib                      1.2.13               h5eee18b_0  

使用conda info --envs查看环境

(test) 用户名@主机名:~# conda  info --envs
# conda environments:
#
base                     /root/anaconda3
test                  *  /root/anaconda3/envs/test
退出环境
conda deactivate
(2)生成此环境对应的jupyter lab选项卡;
安装ipykernel

使用pip安装ipykernel

pip install ipykernel
安装jupyter menus
python -m ipykernel install --user --name [环境名称] --display-name "[展示名称]"
例如:
python -m ipykernel install --user --name test --display-name "Test"
测试使用的kernel的位置

在jupyter notebook或者jupyter lab中选择Test kernel,输入下面代码,看看是否是环境的安装路径

import sys
print (sys.executable)

参考文献

[1] anaconda https://baike.baidu.com/item/anaconda/20407441
https://www.anaconda.com
[2] 初学 Python 者自学 Anaconda 的正确姿势是什么?https://zhuanlan.zhihu.com/p/32925500
[3] Anaconda介绍、安装及使用教程 https://zhuanlan.zhihu.com/p/32925500
[4] conda常用命令汇总 https://blog.csdn.net/raelum/article/details/125109819
[5] Conda介绍 https://blog.csdn.net/koflance/article/details/78582737
[6] 用conda进行python虚拟环境创建、管理以及jupyter和pycharm使用此环境 https://zhuanlan.zhihu.com/p/64100305


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐