conda/pip基本常用命令理解与整理

news2025/1/7 21:37:54

最近配置了两轮pytorch环境,由于要频繁用到各种conda和pip命令,所以再此整理一下。

文章目录

  • 前言:conda虚拟环境总结与解读
  • Conda和pip的理解
    • 区别和联系
    • 命令格式
  • conda环境命令
    • 查看
    • 创建和删除
    • 导出与导入
    • 激活和退出
  • 包管理命令
    • 安装和删除
    • 文件批量操作
  • 换源相关
    • 镜像源的概念和使用
    • 查看源
    • 在install中临时指定源
    • 通过命令永久换源
    • 通过文件永久换源
    • 代理模式下的SSL证书错误
  • 其他

前言:conda虚拟环境总结与解读

conda虚拟环境总结与解读

Conda和pip的理解

区别和联系

conda和pip都是用来管理包的,但是conda管理的范围大,不仅限于python,且其依赖检查更强大,还可以方便地创建虚拟环境。而pip专精于python,有一些conda没有的包在pip里能找到,而且pip有时候还有一些wheel(已经编译好的包),安装速度更快。

总之,conda和pip都可以用来管理python包,而且他们的包安装路径是一样的,但本身是两个软件,两套配置,两套命令。

建议优先conda,如果conda没有再用pip补充。

命令格式

linux命令格式如下:

command [options] [arguments]

其中option字段有---两种。
- 用于短选项,可以组合使用,适合快速输入;
– 用于长选项,不可组合使用,适合明确表达选项的含义

注:[]方括号只是为了分割,实际输入中并不存在

conda里面也继承了这个特点,如下:

conda -V
conda --version

conda命令由 [主命令] [子命令] [选项1] [参数1]···组成,举个例子:

conda config --add channels [新源]

config就是子命令,–add channels为选项,新源为参数

conda环境命令

查看

显示所有环境:conda env list

创建和删除

创建环境:conda create -n [env] python=[python版本]
删除环境写法1:conda env remove -n [env]
删除环境写法2:conda remove -n [env] --all

注意,remove本来是用来删除包的,但是在显式指定环境命并且加了–all之后,就可以进行环境删除操作了。

导出与导入

导出:conda env export > [file.yaml]
导入:conda env create -f [file.yaml]

注意,导入比直接创建多一个env子命令

激活和退出

激活:conda activate [env]
退出:conda deactivate

包管理命令

安装和删除

conda install [package][==version] [-c] [channel]
pip install [package][==version] [-i] [index-url]

注意,-c和-i是指定临时源,而指定版本的==也可以换成>=,<=,这种写法兼容性更强一些。

conda remove [-n] [env] [package]
pip uninstall [package]
非标准:conda uninstall [package]

注意,pip本身没有虚拟环境功能,所以不需要指定env,而conda要指定。如果conda不指定env,则默认当前环境,也就是我们最常见到的命令。此外,conda uninstall是一种过渡式命令,并不标准。

文件批量操作

导出所有包:pip freeze > [requerement.txt]
安装所有包:pip install -r [requerement.txt]

上述pip操作类似于前面说过的conda环境的导出和导入

导出:conda env export > [file.yaml]
导入:conda env create -f [file.yaml]

二者的区别是conda更好用

  • conda是一整个环境

    • 如果你查看yaml文件,你会发现里面有 包名、源、依赖、本地路径
    • 有人说conda导出环境不包含pip安装包,至少现在并非如此,conda会单独列出来一个pip项,里面的子列表列出pip的内容,并且在conda env create -f操作的时候调用pip命令进行安装
      在这里插入图片描述
  • pip只是所有包的集合,没有环境信息

    • 如果包来自于本地或者conda,就会在后面附带本地路径信息,此时在另一台电脑上安装的时候就会出现问题。在这里插入图片描述

所以前面所谓的“conda导出环境不含pip包”,其实是不准确的,实际上pip和conda导出的包信息都是包含其他来源的。只不过pip比较笨,比较原始,无法识别是本地还是conda来源,所以统一视作来自于本地,只要是在另一台电脑上安装就必然报错,只能用于本地备份(freeze很形象)。而conda因为是为虚拟环境而生,所以更加智能,来源于pip的会标出,并且在conda env create时会调用pip进行安装,甚至还会给你带上镜像源地址,真的是无痛安装。

当然还有一种特殊情况,就是pip,conda,本地安装三者交叉,这样的环境是很难操作的,最好还是整个导出为文件,虽然很大,但是至少不会出错。

换源相关

镜像源的概念和使用

conda install numpy

这个命令的背后,是你的conda先到默认源(https://repo.anaconda.com/pkgs/main/)下进行查找,如果有对应包,就给你下载下来。如果没有,就切换下一顺位的源,以此类推。

所以源是什么呢?是一个代表文件夹路径的URL,而国内访问国外官网很不稳定,所以最好配置国内的镜像源。

需要注意,国内镜像源是有一定延迟的,不一定会有,但实际生产中大部分包都是有的,如果出错更大概率是你不会用镜像源,从网上粘贴了一个源就以为粘对了。目前来说,中科大源已停更,推荐使用清华源,当然还有阿里源,北师大源等可用,接下来展示清华源的使用方法:

最详尽的conda镜像源管理的终极教程——张浩彬

一般我们最常用的就是conda(anaconda)和pip(pypi),你点进去之后就可以看到对应目录,复制好进行添加即可。

查看源

conda config --show channels
pip config list

在install中临时指定源

  • conda用-c,即channel
  • pip用-i,即index-url

注意,conda源有时候不一定是URL形式,比如-c conda-forge;-c pytorch,这些都不是conda默认源,但用的很多,所以就约定俗成为一个标识符,背后还是URL,

通过命令永久换源

conda:

conda config --add channels [channel]
conda config --remove channels [channel]

删除所有非默认:conda config --remove-key channels

pip:

pip config set global.index-url [index-url]
pip config unset global.index-url

需要注意的是,conda是可以用命令单独添加和删除源的,但是pip不可以,global下面只有一个index-url,代表唯一默认源,所以其命令也是set而不是add

pip似乎可以使用add global.extra-index-url 来添加,但是实测下来没有add子命令,所以我认为pip如果要使用多个源还是得修改文件,实在不行就手动-i吧,反正pip用的也少。

通过文件永久换源

我推荐用命令换源,文件涉及到优先级,而且格式也不一定对,所以这篇仅供参考。

源信息储存在配置文件中,默认情况下配置文件是不存在的,因为没必要,直接写在程序代码里就可以。如果你这个时候要添加,可以手动创建,不用担心什么,而当你通过命令添加源后,配置信息就会写入配置文件,此时配置文件也会出现,你可以进行修改。

conda的配置文件在.condarc里,具体有三级,建议在用户级别进行配置:

  1. conda:env_dir/.condarc
  2. 用户:~/.condarc
  3. 系统:略

一个奇怪的现象是,按理说conda优先级高于用户,但是我进行conda配置的时候,写入的是用户级别的condarc,比较诡异。

具体写法是:

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - conda-forge
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - https://repo.anaconda.com/pkgs/msys2

pip的配置文件位置看情况,linux叫pip.conf,windows叫pip.ini

在这里插入图片描述
格式为:

在这里插入图片描述

额外源格式为:

[global]
extra-index-url = https://pypi.tuna.tsinghua.edu.cn/simple

代理模式下的SSL证书错误

在实际应用中,我发现开着代理(就算是直连模式),访问https源的时候就会出现链接失败的问题,这篇文章中提到了解决方法:

Python+代理模式下 +解决 pip 安装第三方包时因 SSL 报错Caused by SSLError

最简单的就是配置镜像源+把代理关了,就这么简单(doge)

其他

查看版本(pip同理):

conda -V
conda --version

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2272856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maven 详细配置:Maven settings 配置文件的详细说明

Maven settings 配置文件是 Maven 环境的重要组成部分&#xff0c;它用于定义用户特定的配置信息和全局设置&#xff0c;例如本地仓库路径、远程仓库镜像、代理服务器以及认证信息等。settings 文件分为全局配置文件&#xff08;settings.xml&#xff09;和用户配置文件&#x…

Unity-Mirror网络框架-从入门到精通之Chat示例

文章目录 前言Chat聊天室Authentication授权ChatAuthenticatorChat示例中的授权流程聊天Chat最后 前言 在现代游戏开发中&#xff0c;网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架&#xff0c;专为多人游戏开发设计。它使得开发者能够轻…

复杂园区网基本分支的构建

目录 1、各主机进行网络配置。2、交换机配置。3、配置路由交换&#xff0c;进行测试。4、配置路由器接口和静态路由&#xff0c;进行测试。5、最后测试任意两台主机通信情况 模拟环境链接 拓扑结构 说明&#xff1a; VLAN标签在上面的一定是GigabitEthernet接口的&#xff0c…

这是什么操作?强制迁移?GitLab 停止中国区用户访问

大家好&#xff0c;我是鸭鸭&#xff01; 全球知名代码托管平台 GitLab 发布通告&#xff0c;宣布不再为位于中国大陆、香港及澳门地区的用户提供访问服务&#xff0c;并且“贴心”建议&#xff0c;可以访问极狐 GitLab。 极狐 GitLab 是一家中外合资公司&#xff0c;宣称获得…

CDP集成Hudi实战-spark shell

[〇]关于本文 本文主要解释spark shell操作Hudi表的案例 软件版本Hudi1.0.0Hadoop Version3.1.1.7.3.1.0-197Hive Version3.1.3000.7.3.1.0-197Spark Version3.4.1.7.3.1.0-197CDP7.3.1 [一]使用Spark-shell 1-配置hudi Jar包 [rootcdp73-1 ~]# for i in $(seq 1 6); do s…

设计模式学习[15]---适配器模式

文章目录 前言1.引例2.适配器模式2.1 对象适配器2.2 类适配器 总结 前言 这个模式其实在日常生活中有点常见&#xff0c;比如我们的手机取消了 3.5 m m 3.5mm 3.5mm的接口&#xff0c;只留下了一个 T y p e − C Type-C Type−C的接口&#xff0c;但是我现在有一个 3.5 m m 3.…

数据挖掘——数据预处理

数据挖掘——数据预处理 数据预处理数据预处理 ——主要任务数据清洗如何处理丢失的数据如何处理噪声数据如何处理不一致数据 数据集成相关分析相关系数(也成为皮尔逊相关系数)协方差 数据规约降维法&#xff1a;PCA主成分分析降数据——抽样法数据压缩 数据预处理 数据预处理…

Unity-Mirror网络框架-从入门到精通之CCU示例

文章目录 前言什么是CCU&#xff1f;测试结果最后 前言 在现代游戏开发中&#xff0c;网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架&#xff0c;专为多人游戏开发设计。它使得开发者能够轻松实现网络连接、数据同步和游戏状态管理。本文…

如何在 Ubuntu 22.04 上安装 Nagios 服务器教程

简介 在本教程中&#xff0c;我们将解释如何在 Ubuntu 22.04 上安装和配置 Nagios&#xff0c;使用 Apache 作为 Web 服务器&#xff0c;并通过 Let’s Encrypt Certbot 使用 SSL 证书进行保护。 Nagios 是一个强大的监控系统&#xff0c;它可以帮助组织在 IT 基础设施问题影…

大语言模型训练所需的最低显存,联邦大语言模型训练的传输优化技术

联邦大语言模型训练的传输优化技术 目录 联邦大语言模型训练的传输优化技术大语言模型训练所需的最低显存大语言模型训练所需的最低显存 基于模型微调、压缩和分布式并行处理的方法,介绍了相关开源模型及技术应用 核心创新点 多维度优化策略:综合运用基于模型微调、模型压缩和…

Javascript算法——贪心算法(一)

贪心算法详解&#xff08;JavaScript&#xff09;&#xff08;局部最优->全局最优&#xff09; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取当前状态下的最优选择&#xff08;局部最优&#xff09;的算法设计方法。通过局部最优解的累积&…

141.《mac m系列芯片安装mongodb详细教程》

文章目录 下载从官网下载安装包 下载后双击解压出文件夹安装文件名修改为 mongodb配置data存放位置和日志log的存放位置启动方式一方式二方式二:输入mongo报错以及解决办法 本人电脑 m2 pro,属于 arm 架构 下载 官网地址: mongodb官网 怎么查看自己电脑应该下载哪个版本,输入…

【ArcGISPro/GeoScenePro】裁剪和打包栅格数据

检查并处理扫描地图 数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 使用标准相机或扫描仪创建的数字影像通常存储在 RGB 颜色模型中,这意味着这些影像将由红色、绿色和蓝色三个栅格组成。 此扫描地图在提供给您之前已在坐标系…

【C++】B2109 统计数字字符个数

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述与输入输出要求题目&#xff1a;统计数字字符个数样例输入输出 &#x1f4af;方法分析与代码实现方法 1&#xff1a;使用 fgets 读取输入并手动判断数字字符代码实…

基于32单片机的智能语音家居

一、主要功能介绍 以STM32F103C8T6单片机为控制核心&#xff0c;设计一款智能远程家电控制系统&#xff0c;该系统能实现如下功能&#xff1a; 1、可通过语音命令控制照明灯、空调、加热器、窗户及窗帘的开关&#xff1b; 2、可通过手机显示和控制照明灯、空调、窗户及窗帘的开…

git理解记录

文章目录 1. 背景2. 基本概念3. 日常工作流程4. 其他常见操作4.1 merge合并操作4.2 tag打标签操作4.3 remoute远程操作4.4 撤销修改 git理解记录 1. 背景 git作为分布式版本控制系统&#xff0c;开源且免费&#xff0c;相比svn集中式版本控制系统存在速度快(HEAD指针指向某次co…

开启宝塔Nginx防火墙支付返回失败解决方法

1.把/plugin.php加到Nginx防火墙URL白名单 包括支付服务器回调ip 2.如果支持带参数 /plugin.php?idzhifufm:notify 加到Nginx防火墙标准模式-URL白名单带参数 如果上面都不行 就把下面的IP加入白名单 39.107.193.172 47.94.194.103 47.104.216.190

平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网

为响应金融知识普及教育号召&#xff0c;平安产险安徽分公司联动安徽中医药临床研究中心附属医院&#xff0c;于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识&#xff0c;守护儿童健康成长&#xff0c;同时有力推动金融知识与传统…

Elasticsearch:Lucene 2024 年回顾

作者&#xff1a;来自 Elastic Chris Hegarty 2024 年对于 Apache Lucene 来说又是重要的一年。在本篇博文中&#xff0c;我们将探讨主要亮点。 Apache Lucene 在 2024 年表现出色&#xff0c;发布了许多版本&#xff0c;包括三年来的首次重大更新&#xff0c;其中包含令人兴奋…

Unity打包问题集(持续更新)

1.报错&#xff1a;CommandWithNoStdoutInvokationFailure: Unable to start ADB server. Please make sure the Android SDK is installed and is properly configured in the Editor. See the Console for more details. 大致意思就是打不开ADB的服务器&#xff0c;请检查安卓…