引言
Conda 作为一种跨平台的包和虚拟环境管理器,使用的时候功能与pip类似。安装python依赖包的时候经常将两种方法混合使用,但一直没有进行具体区分。重复安装python依赖包的时候出现各种不兼容的bug。经历一天烦躁的安装、卸载和查阅资料的痛苦过程,将自己的学习收获梳理一下,公开分享帮助遇到同样难题的朋友们。同时,另外一篇博文讲解了如何快速安装pytorch包【手把手教你安装pytorch包-CSDN博客】,让你更快速地完成项目运行基础环境软件的安装。
目录
一、 Anaconda安装
Anaconda集成了conda和python软件(无需单独安装python软件),可以管理不同版本软件包和开发框架例如pytorch、tensorflow等。
Anaconda可以通过官网下载,但是速度较慢。大家一般是从国内镜像网站进行下载安装。例如清华源:【https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/】 ,软件下载完毕后直接安装即可。
二、conda和python的区别
Anaconda官网对conda和pip的区别进行了对比分析。
conda和pip主要区别:
(1)conda 不仅可以安装依赖包还可以创建隔离的虚拟环境,而pip不没有创建环境功能。当导入不同的项目文件为避免python依赖包不兼容问题,可以为每个项目创建自己的虚拟环境。
(2)conda不仅可以安装python库,还可以安装C\C++或者其他语言库
(3)conda 有严格的检查机制,可以保证package安装完后就正常使用,注意:conda只检查用conda命令安装的包,不检查pip命令安装的包。不理想的情况是,如果用pip已经安装某个包,用conda安装该包,会无视其存在重新安装一个新包。两个包同时存在会出现调用冲突。解决途径就是卸载该包。如果卸载不干净的时候可以直接从anaconda安装路径下的【envs/**环境名/Lib/site-packages/】手动卸载相应的包。
请问大神们,pip install 和conda install有什么区别吗? - 知乎
三、创建项目环境命令
conda一个优势就是可以为每个项目创建独属于自己的虚拟环境,避免不同项目的依赖包之间的冲突。本小节会介绍一些常用的创建环境、显示、激活、删除环境等命令。
1.用conda命令创建项目环境
conda create -n 环境名称 python=python版本
示例:
conda create -n pytorch python=3.7
2.显示所有环境列表
conda env list
3.激活环境
conda activate 环境名称
4.退出环境
conda deactivate
5.删除环境
conda remove -n 环境名称 --all
四、安装python依赖包
4.1 pip安装package使用技巧
4.1.1 pip的wheel方式安装
wheel是一个预编译的二级制包,文件扩展名为.whl。通过安装whl文件可以快速将python包及其依赖项安装到系统中,比从源码安装更快速。通过安装whl文件,我们可以确保所需的依赖项已经包含在内,减少了手动安装依赖项的麻烦。
安装whl文件需要在命令窗口输入命令进入whl文件的存放目录,之后用pip install 命令安装。例如,whl文件存放于D:\xxx\xxx.whl。
#打开盘符D命令
d:
#进入子目录命令
cd xxx
#安装whl命令
pip install xxx.whl
4.1.2 pip的国内镜像源方式安装
pip安装依赖包也可以采用从国内镜像源在线安装的方式,镜像源可以是临时镜像源,或者配置成永久镜像源。
(1)使用临时镜像源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称
示例代码安装albumentations包,用于数据预处理,例如,反转,添加噪声、模糊、滤波等。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple albumentations
常用的国内镜像源有:
https://pypi.tuna.tsinghua.edu.cn/simple
https://mirrors.aliyun.com/pypi/simple/
https://pypi.douban.com/simple/
https://pypi.mirrors.ustc.edu.cn/simple/
https://pypi.hustunique.com/
https://pypi.sdutlinux.org/
(2)配置永久镜像源
方法一:在路径【C:\Users\xxx\】下寻找pip文件夹,若没有可以创建,打开pip文件夹创建pip.ini文件。将以下内容放入pip.ini文件中。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
方法二:使用命令设置永久源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
注意:如果想改成默认镜像源直接删除pip文件即可。
4.2 conda安装package使用技巧
conda在安装各种包的时候可以使用临时镜像源也可以使用永久镜像源,本小节会介绍两种方式的工作方式,以及一些常用的其他conda命令。
1. 使用临时镜像源
conda install --channel https://地址 包名
2. 配置永久镜像源
在路径【C:\Users\xxx\】下寻找.condarc文件,也可以通过命令显示.condarc文件所在路径。
conda config --show-sources #显示.condarc文件路径
##显示结果##
==> C:\Users\62494\.condarc <==
show_channel_urls: True
注意:如果在路径【C:\Users\xxx\】下不存在.condarc 文件,Windows 用户无法像创建pip.ini文件那样直接创建.condarc 文件,而是需要先通过以下命令生成该文件。
conda config --set show_channel_urls yes
方法一:将.condarc文件中的内容替换为(清华源、阿里源等)
channels:
- defaults
show_channel_urls: true
default_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
custom_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
配置完成可运行在命令窗口清除索引缓存
conda clean -i
方法二:在conda 命令窗口中输入命令直接创建永久源自动修改.condarc 文件内容。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
3. 常用conda镜像源操作命令
(1)查看当前源命令
conda config --show channels
conda config --get channels
(2)如果想改成默认源
conda config --remove-key channels
(3)删除某镜像源
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
五、项目环境迁移
5.1 pip freeze命令
首先,在anaconda prompt 命令窗口中进入需迁移虚拟环境的项目根目录,执行pip freeze命令会将项目所在系统中的所有包都整体打包放进该项目的requirements.txt文件中。
pip freeze > requirements.txt
5.2 pipreqs 命令
仅仅封装与本项目依赖的包,其他无关包并不参与封装操作。encoding 选项主要解决windows系统字符编码采用gbk格式。
XXXX(项目根目录)> pipreqs ./ --encoding=utf-8
六、参考文章
conda环境和更换镜像源_conda更新镜像-CSDN博客
Anaconda常用命令及配置国内镜像源_conda install 镜像_凉水/的博客-CSDN博客
conda 修改镜像源_conda更换镜像源_青灯剑客的博客-CSDN博客