前言
conda与pip是Python开发中常用的两种工具,conda本质是环境、包管理工具,pip是包管理工具,两者的功能有一定的重叠。本文主要记录开发工作中与两者相关的使用说明与注意事项。
- 推荐用conda创建隔离的虚拟环境,用pip进行包安装。
- conda安装的包存储在pkgs目录——通过
conda info
命令查看“package cahce”。pip安装的包存储在miniconda3系统或者虚拟环境的site-packages目录内,可通过pip show -f <package_name>
查看site-packages的目录地址信息。 - 类似GPU版本的torch大型库,建议下载好wheel文件,避免在虚拟环境中重复下载;或者使用clone选项,基于已有环境新建。
Miniconda
Miniconda 是一个Mini型的Anaconda,包含conda、python以及二者的一些必须依赖环境。
Miniconda 安装
-
注意,windows操作系统安装miniconda时,默认选项中选择“just me”,安装到系统层面,经常会遇到各种conda异常:
On Windows, macOS, and Linux, it is best to install Miniconda for the local user, which does not require administrator permissions and is the most robust type of installation. However, if you need to, you can install Miniconda system wide, which does require administrator permissions.
选择“just me”默认选项,默认会将miniconda安装在用户主目录下,比如“C:\Users\18202\miniconda3”,这里的“18202”是用户名。创建的隔离虚拟环境会存储在“C:\Users\18202\miniconda3\envs”中。但如果选择“all user”安装选项,默认会将miniconda安装在“C:\ProgramData\miniconda3”,如果用户创建隔离虚拟环境,注意miniconda会在用户主目录下创建一个“.conda”目录,并将虚拟环境存储在其中,比如“C:\Users\18202.conda\envs”。
-
Linux下清华镜像源下载安装
# 下载最新版本 wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh --no-check-certificate # 安装 /bin/bash Miniconda3-latest-Linux-x86_64.sh
conda 与 pip的区别
根据understanding-conda-and-pip与全面总结 pip install 与 conda install 的使用区别。两者的主要区别包含:
-
安装包文件格式方面
- pip 是python官方推荐的包安装工具,仅能安装python包——wheel版或源代码发行版。wheel属于已编译发新版的一种,下载好后可以直接使用;而源代码发行版必须要经过编译生成可执行程序后才能使用,编译的过程是在用户的机子上进行的。
- conda 是一个跨平台(windows、Linux)工具,不仅能安装python包,也能安装C语言包;conda安装包是二进制文件,下载后即可使用,不需要经过编译。
-
安装源方面
- pip默认从pypi (python package index)源安装,conda默认从conda reposity或者conda cloud安装。虽然Anaconda上有一些主流Python包,但在数量级上明显少于PyPI,缺少一些小众的包。
-
环境隔离方面
- conda内置支持虚拟环境隔离能力
- pip不具备环境隔离能力,需借助virtualenv或者venv工具管理虚拟环境。
-
包关系依赖方面
- pip安装包时,尽管也对当前包的依赖做检查,但是并不保证当前环境的所有包的所有依赖关系都同时满足。当某个环境所安装的包越来越多,产生冲突的可能性就越来越大。
- conda会检查当前环境下所有包之间的依赖关系,保证当前环境里的所有包的所有依赖都会被满足
-
包安装路径
- 虚拟环境下,使用pip install安装的包存储在site-packages目录下——base(系统)环境与用户虚拟环境均存在site-packages目录,可通过
pip show -f <package>
查看目录信息。 - conda install安装的库存储在pkgs目录下,可通过
conda info
查看pkgs目录地址信息。这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
- 虚拟环境下,使用pip install安装的包存储在site-packages目录下——base(系统)环境与用户虚拟环境均存在site-packages目录,可通过
conda
conda config
首次安装后配置清华镜像源
# 配置
# 首次运行conda config命令,会在运行命令位置生成.condarc配置文件
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 --set show_channel_urls true
conda config --set auto_activate_base true
# linux下生效配置
source ~/.condarc
配置文件层级
conda配置信息存储在“.condarc”配置文件。在conda系统中,存在三种配置文件:
1. 系统配置文件,默认在Miniconda安装路径,比如安装在linux系统中用户主目录“~/miniconda/.condarc”
2. 虚拟环境配置文件,默认在虚拟环境目录下,比如,~/miniconda/envs/<envname>/.condarc
3. 用户配置文件,默认在用户目录下,比如,~/.condarc文件。
如果对应位置没有".condarc"文件,则需要先使用conda config命令生成对应位置的配置文件。
建议使用conda config命令进行配置信息写入与修改。
选项 | 描述 |
---|---|
--system | 告知conda配置系统层面的配置信息。 |
--env | 告知conda配置虚拟环境层面的配置信息。 |
不指定system、env选项 | 如果调用conda config不指定system或者env选项,则默认配置用户层面的配置信息。 |
conda 更改虚拟环境名称
Conda:1秒钟修改虚拟环境名称: 首先在IDE中应确保退出目标虚拟环境,然后使用conda info -e
查询虚拟环境的绝对路径,最后在绝对路径中直接修改目录名。
conda 常用命令
从已有环境创建新虚拟环境
conda install -n <new_env_name> --clone <existed_nev_name>
--clone <existed_nev_name>
选项可以复制一个已经存在的虚拟环境作为新环境的起点。建议每个项目新建一个独立的虚拟环境。
查看虚拟环境名称及绝对路径
conda info -e
查看虚拟环境版本变更历史
conda list --revisions
pip
pip 配置
配置清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
常用命令
查看安装包信息
pip show -f <package>