Python 包管理器——Anaconda

什么是 Anaconda?

Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda 包含了 conda、Python 在内的超过 180 个科学包及其依赖项。

Anaconda、conda、pip 的区别:

  • Anaconda 是一个包含 180+ 的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook 等。
  • conda 是包及其依赖项和环境的管理工具
    • 快速安装、运行和升级包及其依赖项
    • 在计算机中便捷地创建、保存、加载和切换环境
    • conda 为 Python 项目而创造,但可适用于多种语言
  • pip 是用于安装和管理软件包的包管理器

conda 和 pip 的比较:

  • 依赖项检查

    • pip

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

      • 列出所需其他依赖包
      • 安装包时自动安装其依赖项
      • 可以便捷地在包的不同版本中自由切换
  • 环境管理

    • pip:维护多个环境难度较大
    • conda:比较方便地在不同环境之间进行切换,环境管理较为简单
  • 对系统自带 Python 的影响

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

安装

官网下载

  • 不要以管理员身份安装
  • 不要勾选 “Add Anaconda to my PATH environment variable.”

更新与换源

添加三个环境变量:

anaconda3\Library\bin
anaconda3\Scripts
anaconda3\

验证 conda 已被安装:conda --version

更新 conda 至最新版本:conda update conda

升级 Anaconda Navigator :conda update anaconda-navigator

升级所有包:conda update --all

查看 conda 帮助信息:conda -h

换源:把 /用户名/.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
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

并运行 conda clean -i 清除索引

管理环境

创建新环境

conda create --name <env_name> <package_names>

注意:

  • <env_name> 即创建的环境名
  • <package_names> 即安装在环境中的包名
  • 如果要安装指定的版本号,则只需要在包名后面以 python= 和版本号的形式执行。如:conda create --name python2 python=2.7 ,即创建一个名为 python2 的环境,环境中安装版本为 2.7 的 python
  • 如果要在新创建的环境中创建多个包,则直接在 <package_names> 后以空格隔开,添加多个包名即可。如: conda create -n python3 python=3.5 numpy pandas ,即创建一个名为 python3 的环境,环境中安装版本为 3.5 的 python,同时也安装了 numpy 和 pandas

切换环境activate <env_name>

退出环境deactivate

显示已创建环境

conda info --envs

conda info -e

conda env list

复制环境

conda create --name <new_env_name> --clone <copied_env_name>

删除环境

conda remove --name <env_name> --all

管理包

查找可供安装的包版本

  • 精确查找
conda search --full-name <package_full_name>
  • 模糊查找
conda search <text>

获取当前环境中已安装的包信息

conda list

安装包

  • 在指定环境中安装包
conda install --name <env_name> <package_name>
  • 在当前环境中安装包
conda install <package_name>

卸载包

  • 在指定环境中卸载包
conda remove --name <env_name> <package_name>
  • 在当前环境中卸载包
conda remove <package_name>

更新包

  • 更新指定包
conda update <package_name>
  • 更新所有包
conda update --all

用 pip 命令安装

pip install <package_name>

注意:

  • pip 只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用 pip 进行安装包,则需要先切换到指定环境中,再使用 pip 命令安装包。
  • pip 无法更新 python,因为 pip 并不将 python 视为包。
  • pip 可以安装一些 conda 无法安装的包;conda 也可以安装一些 pip 无法安装的包。因此当使用一种命令无法安装包时,可以尝试用另一种命令。

从 Anaconda 安装包

点击 Anaconda Cloud,搜索包名,复制代码

Node.js 包管理器

npm

npm (Node Package Manager) 是 Node.js 自带的包管理器,安装了 Node.js 即可使用

常用命令:

命令 效果
npm init 创建一个新的 package.json 文件
npm install 安装 package.json 文件中指定的依赖项
npm install <package name> --save-S 安装指定的依赖项,并添加到 package.json 的 dependencies 中
npm install <package name> --save-dev-D 安装指定的依赖项,并添加到 package.json 的 devDependencies 中
npm update 更新 package.json 文件中指定的所有包
npm update <package name> 更新指定的包
npm uninstall <package name> 卸载指定的依赖项
npm run <script name> 运行 package.json 文件中指定的脚本
npm ls 列出当前项目中已安装的所有包及其依赖关系
npm install <package name> -g 全局安装包

可以使用 nrm 切换 npm 源:npm install nrm -g

列出可用源:nrm ls

切换源:nrm use <registry>

yarn

Yarn 同样是一个 JavaScript 的包管理器

使用 npm 安装:npm install -g yarn

这里只列出一些和 npm 不同的命令:

  • yarn add [package]
  • yarn remove [package]
  • yarn upgrade [package]

使用 yrm 管理源

pnpm

pnpm 同样是包管理器

Linux 包管理器——apt/apt-get

Debian 系(包括 Ubuntu)通常使用 apt/apt-get 作为包管理器

命令 功能
apt install 安装一个软件包
apt remove 移除一个软件包
apt purge 移除包及相关配置
apt update 刷新仓库索引
apt upgrade 升级所有可升级的软件包
apt autoremove 移除多余的软件包
apt full-upgrade 升级软件包,并自动处理依赖
apt search 搜索某个程序
apt show 显示软件包详情

换源

编辑 /etc/apt/sources.list

更换为中科大源

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse