生信软件管家——conda vs pip
pip vs conda:
安装过python包的人自然两种管理软件都用过,
Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别
总的来说:
pip是包管理软件,conda既是包管理软件,又是环境管理软件
管理环境用conda,安装python相关包用pip,麻烦点再用conda(在装python包上conda比pip少)









参考:
https://mp.weixin.qq.com/s/CsiVdclmAyugNdL9T60UzQ
https://mp.weixin.qq.com/s/SbRV5rRnHbB5aStYb0MZcg
01
写在前面
大家拿到自己的服务器后可能需要安装很多的软件与包(生信分析为什么要使用服务器?),Linux中许多包的安装依赖过多、安装复杂。而conda作为一个能够直接安装超过90%软件的"管家",能够像Windows和手机中的应用商店那样一键为你解决安装软件的烦恼。conda 是一个开源的软件包管理和环境管理系统,用于简化在不同平台上安装、运行和管理软件包。该工具用于支持 Python 语言,但也能够管理非 Python 的软件。
以下是 Conda 的一些主要特点和功能:
- 跨平台性: Conda 可以在 Windows、Linux 和 macOS 等多个操作系统上运行,支持跨平台的软件包管理。
- 软件包管理: Conda 提供了一个强大的软件包管理系统,可以轻松安装、更新和删除软件包。这些软件包可以包含 Python 库、工具、依赖项等。
- 环境管理: Conda 允许用户创建、导出、列出、删除和更新虚拟环境,以便在不同项目中隔离和管理依赖项。
- 依赖项解决: Conda 能够自动解决和管理软件包之间的依赖关系,确保安装的软件包能够正确地工作。
- 多版本支持: Conda 允许用户同时安装多个版本的软件包,并在不同的环境中使用这些版本。
- 快速的安装: Conda 使用二进制包进行安装,因此安装速度较快,无需重新编译源代码。
- 大型软件仓库: Anaconda 发布了一个庞大的软件仓库,包含了许多常用的科学计算、数据分析、机器学习等领域的软件包。
- 易于使用: Conda 提供了简单的命令行接口,使用户可以轻松地执行软件包和环境的管理操作。
02
安装conda
1.下载 conda 的安装脚本(这里使用清华大学的镜像)
cd ~ # 推荐将 conda 安装在家目录下
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh
如果链接失效自行去官网下载安装脚本即可
2.执行conda安装脚本
bash Miniconda3-py39_4.10.3-Linux-x86_64.sh
3.阅读并同意conda的相关协议,不停地回车然后输入yes再回车就安装成功了, 执行脚本后输入的文字的顺序可以参考这个
回车
q
yes
回车
yes
4.为了让安装立即生效,需要执行 .bashrc 脚本,这样会立即进入到 conda 的 base 环境下
source ~/.bashrc
5.添加官方源和国内源,这几乎是提速 conda 的唯一方式了
# 添加官方源
conda config --add channels r # R软件包
conda config --add channels conda-forge # Conda社区维护的不在默认通道中的软件
conda config --add channels bioconda # 生物信息学类工具# 添加国内源头 (选其一添加即可)
# 添加中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes# 添加清华大学源(偶尔抽风,此时需要换其他国内源)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes# 添加阿里云源
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
6.查看 conda 源是否配置成功,可以看出各 channel 的优先级(从上到下优先级依次增加)
conda config --get channels
安装完成!
03
使用conda
(1)虚拟环境管理
conda env list (列出虚拟环境信息)
conda create -n (创建虚拟环境)
# 命令示例
conda create -n py38 -y
conda create -n py39 python=3.9 -y # 官方推荐使用这种方式
conda create -n py39_2 -y && conda install -n py39_2 python=3.9 -y# 比较两种创建方式有何不同,并无任何不同
diff miniconda3/envs/py39 miniconda3/envs/py39_2

可以看到,在创建环境时指定 python 版本,和创建完环境后安装 python 的指定版本两者导致的结果并无不同,那为什么官方推荐在创建环境时使用 python=3.9 的方式指定 python
版本呢?这是因为如果您要在该虚拟环境中使用 python,就应该在创建环境之初下载 python3.9 ,之后在这个虚拟环境中下载的其他包都会匹配 python3.9的依赖与约束。如果安装了很多其他包之后再安装 python3.9,处理环境依赖就会变得较为复杂,甚至导致一些不易察觉的 bug。
conda activate (进入虚拟环境)
# 命令示例
conda activate py39
conda deactivate (退出虚拟环境)
# 命令示例
conda deactivate
conda remove -n –all 删除虚拟环境
# 命令示例
conda create -n test -y
conda env list# 删除 test 虚拟环境
conda remove -n test --all
conda env list
导出虚拟环境
# 适用于在相同操作系统版本下 clone 虚拟环境
conda list --explicit > spec-list.txt# 适用于所有平台之间 clone 虚拟环境,这里的平台指的是操作系统,如win、centos、ubuntu
conda env export > environment.yml
根据导出的文件创建虚拟环境
# 代码示例
# 根据导出包创建 env_name1 的虚拟环境
conda create -n env_name1 --file spec-list.txt
conda env create --file environment.yml
(2)channels管理
列出 conda 中配置的 channels,根据优先级从低到高的顺序排列
conda config --get channels
添加 channels,添加国内的 channels 也就是我们常说的添加国内源选其一添加即可,添加太多反而会“打架”。
# 添加中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes# 添加清华大学源(偶尔抽风,此时需要更换为其他国内镜像源,更换国内镜像源的教程可以查看《conda安装教程》)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
conda-forge/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes# 添加阿里云源
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
conda config --set show_channel_urls yes# 添加北京外国语大学源
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/# 添加镜像源后清除一下本地软件搜索索引
conda clean -i
删除 channels
方法 1 (通过命令删除):
# 首先查看 channels
conda config --get channels# 删除指定的 channels
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --remove channels defaults
# 删除配置的所有镜像源conda config --remove-key channels
方法 2 (编辑 .condarc 文件删除想要删除 channels 对应的行)
vi ~/.condarc
安装包时暂时添加 channels
使用 -c 指定的软件源处于最高优先级,这可能导致一个问题,如果你已经配置好国内镜像源,在下载对应源的软件时可以不指定软件源,它会自动从你配置好国内镜像源中下载。
conda install -c bioconda presto
# 如果配置了国内镜像源,就不用指定 channels 了,这样会使用国内镜像源下载,速度更快
conda install presto
换源:
上面几个国内镜像源没有一个是绝对稳定的,都有可能抽风,连接不上,这时可以切换为其他国内镜像源。下图是中科大镜像源不能访问时的报错,而且同一天阿里的镜像源也抽风了……这时可以切换为其他国内镜像源。

# 移除当前配置的所有镜像源
conda config --remove-key channels
# 重新添加镜像源,以北外的镜像源为例
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
(3)包管理
使用 conda 安装包之前,需要用search命令搜索 conda 包,找到安装对应包的命令后再进行安装,如果不能在下面的链接中找到安装方法,即表明该包不能通过 conda 安装。例如我们搜一下python试试看,返回的就是python包的名称、对应版本及channel。

此时我们就可以指定channel安装指定版本的python
conda install -c conda-forge python==1.0.1
conda install (安装包)
conda 同样也支持安装R包,例如大名鼎鼎的R包seurat:
conda install r-seurat
04
卸载conda
聚散终有时,如果你因为磁盘容量或者其它原因需要卸载conda,可以尝试以下方式:
conda 的卸载很方便,因为 conda 的安装并不会污染其他系统目录,conda 几乎将所有数据都保存在 miniconda3 目录下
rm -rf .conda
rm -rf .condarc
rm -rf miniconda3
然后再删除 ~/.bashrc 文件中的 conda 初始化添加的语句,也就是删除图示内容:
vim ~/.bashrc

Linux中的文本删改可以参考:Linux| 25. 文件编辑器 vim
删完之后执行一下 .bashrc 文件。
source ~/.bashrc
参考:
https://mp.weixin.qq.com/s?__biz=MzAwMzIzOTk5OQ==&mid=2247506208&idx=1&sn=24d27bc2ff8de340b1f542610b4dc09e&chksm=9b3ca070ac4b29664600d778b077a08bcbd843c29bae65a46261f115a37292aa773fc1513a5a&token=1701013467&lang=zh_CN#rd
相关文章:
生信软件管家——conda vs pip
pip vs conda: 安装过python包的人自然两种管理软件都用过, Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别 总的来说: pip是包管理软件,conda既是包管理软件&…...
项目文章 | PNAS 斑马鱼转录因子ChIP-seq助力解析GATA6突变相关的肝脏疾病机制
近日,西南大学阮华/黄红辉团队联合重庆大学邱菊辉/王贵学团队在PNAS发表了题为“An animal model recapitulates human hepatic diseases associated with GATA6 mutations”的研究论文。该研究构建了一个gata6敲除斑马鱼模型,它重现了gata6突变患者的大…...
JavaScript系列(44)--微服务架构实现详解
JavaScript微服务架构实现详解 🏗️ 今天,让我们来学习如何在JavaScript中实现微服务架构。微服务架构是一种将应用程序构建为一组小型服务的方法,每个服务运行在自己的进程中,并通过轻量级机制通信。 微服务基础概念 …...
Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向
在 Vue 项目中实现导出 PDF 文件、调整文件页面大小和页面方向的功能,使用 html2canvas 将 HTML 内容转换为图片,再使用 jspdf 把图片添加到 PDF 文件中。以下是详细的实现步骤和代码示例: 步骤 1:安装依赖 首先,在项…...
Java-并发编程-特性-可见性-synchronized如何保证可见性?
synchronized 能保证可见性吗? 在Java并发编程中,synchronized 关键字不仅用于实现互斥访问,还能够保证内存可见性。理解这一点需要了解Java内存模型(Java Memory Model,JMM)以及happens-before࿰…...
iOS 权限管理:同时请求相机和麦克风权限的最佳实践
引言 在开发视频类应用时,我们常常会遇到需要同时请求相机和麦克风权限的场景。比如,在用户发布视频动态时,相机用于捕捉画面,麦克风用于录制声音;又或者在直播功能中,只有获得这两项权限,用户…...
【深入理解FFMPEG】命令行阅读笔记
这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…...
数据结构:二叉树—面试题(二)
1、二叉树的最近公共祖先 习题链接https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/ 描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点…...
【C++高并发服务器WebServer】-6:信号
本文目录 信号的概念1.1 core文件1.2 kill命令1.3 alarm函数1.4 setitimer调用1.5 signal捕捉信号1.6 信号集1.7 内核实现信号捕捉的过程1.8 sigaction1.9 sigchld 信号的概念 信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,…...
《探秘人工智能:从基础到未来变革》
在当今科技飞速发展的时代,人工智能(AI)无疑是最具影响力和变革性的技术之一。从手机里智能语音助手到自动驾驶汽车,从智能医疗诊断到智能金融服务,人工智能已经渗透到我们生活和工作的方方面面,悄然改变着…...
【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…...
【PyTorch】3.张量类型转换
个人主页:Icomi 在深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活的平台。神经网络作为人工智能的核心技术,能够处理复杂的数据模式。通过 PyTorch࿰…...
不解释快上车
聊一聊 最近有小伙伴问我有小红书图片和短视频下载的软件吗,我心想,下载那上面的图片和视频做什么?也许是自己没有这方面的需求,不了解。 不过话又说回来,有些很多下载器可能作者没有持续的维护,所以可能…...
C++红黑树详解
文章目录 红黑树概念规则为什么最长路径不超过最短路径的二倍?红黑树的时间复杂度红黑树的结构插入叔叔节点情况的讨论只变色(叔叔存在且为红)抽象的情况变色单旋(叔叔不存在或叔叔存在且为黑)变色双旋(叔叔不存在或叔叔存在且为黑…...
csapp2.4节——浮点数
目录 二进制小数 十进制小数转二进制小数 IEEE浮点表示 规格化表示 非规格化表示 特殊值 舍入 浮点运算 二进制小数 类比十进制中的小数,可定义出二进制小数 例如1010.0101 小数点后的权重从-1开始递减。 十进制小数转二进制小数 整数部分使用辗转相除…...
神经网络|(一)加权平均法,感知机和神经元
【1】引言 从这篇文章开始,将记述对神经网络知识的探索。相关文章都是学习过程中的感悟和理解,如有雷同或者南辕北辙的表述,请大家多多包涵。 【2】加权平均法 在数学课本和数理统计课本中,我们总会遇到求一组数据平均值的做法…...
Spring 框架:配置缓存管理器、注解参数与过期时间
在 Spring 框架中,可通过多种方式配置缓存具体行为,常见配置方法如下。 1. 缓存管理器(CacheManager)配置 基于内存的缓存管理器配置(以SimpleCacheManager为例) SimpleCacheManager 是 Spring 提供的简单…...
FPGA实现任意角度视频旋转(完结)视频任意角度旋转实现
本文主要介绍如何基于FPGA实现视频的任意角度旋转,关于视频180度实时旋转、90/270度视频无裁剪旋转,请见本专栏前面的文章,旋转效果示意图如下: 为了实时对比旋转效果,采用分屏显示进行处理,左边代表旋转…...
openlayer getLayerById 根据id获取layer图层
背景: 在项目中使用getLayerById获取图层,这个getLayerById()方法不是openlayer官方文档自带的,而是自己封装的一个方法,这个封装的方法的思路是:遍历所有的layer,根据唯一标识【可能是id,也可能…...
【Jave全栈】Java与JavaScript比较
文章目录 前言一、Java1、 历史与背景2、语言特点3、应用场景4、生态系统 二、JavaScript1、历史与背景2、语言特点3、应用场景4、 生态系统 三、相同点四、不同点1、语言类型2、用途3、语法和结构4、性能5、生态系统6、开发模式 前言 Java和JavaScript是两种不同的编程语言&a…...
设计模式-建造者模式、原型模式
目录 建造者模式 定义 类图 优缺点 角色 建造者模式和工厂模式比较 使用案例 原型模式 定义 类图 优缺点 应用场景 应用类型 浅克隆 深克隆 建造者模式 定义 将一个复杂的对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,…...
PTMD2.0-疾病相关的翻译后修饰数据库
翻译后修饰(PTMs,post-translational modifications)通过调节蛋白质功能参与了几乎所有的生物学过程,而 PTMs 的异常状态常常与人类疾病相关。在此,PTMD 2.0展示与疾病相关的 PTMs 综合数据库,其中包含 93 …...
【Git版本控制器--3】Git的远程操作
目录 理解分布式版本控制系统 创建远程仓库 仓库被创建后的配置信息 克隆远程仓库 https克隆仓库 ssh克隆仓库 向远程仓库推送 拉取远程仓库 忽略特殊文件 为什么要忽略特殊文件? 如何配置忽略特殊文件? 配置命令别名 标签管理 理…...
批量创建ES索引
7.x from elasticsearch import Elasticsearch# 配置 Elasticsearch 连接 # 替换为你的 Elasticsearch 地址、端口、用户名和密码 es Elasticsearch([http://10.10.x.x:43885],basic_auth(admin, XN272G9THEAPYD5N5QORX3PB1TSQELLB) )# # 测试连接 # try: # # 尝试获取集…...
模块初阶学习
当我们在过去想要实现一个功能时,例如Swap交换函数时,我们需要不断考虑参数的正确与否。如果是在c语言,我们还需要不断更改函数名字,以防止函数名重复。在c我们可以通过函数名重载解决这个问题,但还是有一些小问题&…...
rust学习-rust中的保留字
rust学习-rust中的保留字 已使用的保留字未来可能使用的保留字 保留字是语言中预定义的标识符,不能用作变量名、函数名或其他自定义标识符,Rust的保留字大致可以分为两类:已使用的保留字和未来可能使用的保留字 已使用的保留字 as࿱…...
MySQL中的读锁与写锁:概念与作用深度剖析
MySQL中的读锁与写锁:概念与作用深度剖析 在MySQL数据库的并发控制机制中,读锁和写锁起着至关重要的作用。它们是确保数据在多用户环境下能够正确、安全地被访问和修改的关键工具。 一、读锁(共享锁)概念 读锁,也称为…...
专利申请的价值
独占市场 一种产品只要授权专利权,等于在市场上拥有独占权。 政策奖励 各地方政府均出台响应文件, 对专利申请者进行奖励或者补助。 申报项目 申报高新技术企业、创新基金等 各类计划、项目的必要前提条件 专利申请 技术保护 防止新的技术与产品被他人 抄…...
使用 OpenCV 和 Python 轻松实现人脸检测
目录 一、准备工作 二、加载人脸检测模型 三、读取图像并进行人脸检测 四、处理视频中的人脸检测 五、优化人脸检测效果 六、总结 在人工智能和计算机视觉领域,人脸检测是一项非常基础且重要的技术。通过人脸检测,我们可以在图像或视频中识别并定位人脸,进而进行后续的…...
自然语言处理——从原理、经典模型到应用
1. 概述 自然语言处理(Natural Language Processing,NLP)是一门借助计算机技术研究人类语言的科学,是人工智能领域的一个分支,旨在让计算机理解、生成和处理人类语言。其核心任务是将非结构化的自然语言转换为机器可以…...
