生信软件管家——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既是包管理软件&…...
代码随想录——串
文章目录 反转字符串反转字符串Ⅱ路径加密反转字符串中的单词动态口令字符串匹配重复的子字符串 反转字符串 344. 反转字符串 //前后对应交换 //0<->sSize-1 //1<->sSize-2 //... //i<->sSize-1-i,i0,1,...,(sSize-1)/2 void reverseString(char* s, int s…...
詳細講一下RN(React Native)中的列表組件FlatList和SectionList
1. FlatList 基礎使用 import React from react; import { View, Text, FlatList, StyleSheet } from react-native;export const SimpleListDemo: React.FC () > {// 1. 準備數據const data [{ id: 1, title: 項目 1 },{ id: 2, title: 項目 2 },{ id: 3, title: 項目 3…...

TDengine 与上海电气工业互联网平台完成兼容性认证
在工业数字化转型和智能化升级的浪潮中,企业对高效、可靠的数据管理解决方案的需求日益增长。特别是在风电智能运维、火电远程运维、机床售后服务等复杂多样的工业场景下,如何实现海量设备和时序数据的高效管理,已经成为推动行业升级的关键。…...

随机矩阵投影长度保持引理及其证明
原论文中的引理 2 \textbf{2} 2 1. \textbf{1. } 1. 引理 1 \textbf{1} 1(前提之一) 1.1. \textbf{1.1. } 1.1. 引理 1 \textbf{1} 1的内容 👉前提: X ∼ N ( 0 , σ ) X\sim{}N(0,\sigma) X∼N(0,σ)即 f ( x ) 1 2 π σ e – x 2 2 σ 2 f(x)\text{}…...
深度学习利用数据加载、预处理和增强数据提高模型的性能
深度学习数据预处理是一个关键步骤,旨在提高模型的性能和准确性。 通过数据加载、预处理和增强,可以显著提高深度学习模型的性能和准确性。在实际应用中,需要根据具体的数据和任务来选择合适的预处理和增强技术。 以下将详细论述并举例说明如…...

ESP32服务器和PC客户端的Wi-Fi通信
ESP32客户端-服务器Wi-Fi通信 本指南将向您展示如何设置ESP32板作为服务端,PC作为客户端,通过HTTP通信,以通过Wi-Fi(无需路由器或互联网连接)交换数据。简而言之,您将学习如何使用HTTP请求将一个板的数据发…...

新型人工智能“黑帽”工具:GhostGPT带来的威胁与挑战
生成式人工智能的发展既带来了有益的生产力转型机会,也提供了被恶意利用的机会。 最近,Abnormal Security的研究人员发现了一个专门为网络犯罪创建的无审查AI聊天机器人——GhostGPT,是人工智能用于非法活动的新前沿,可以被用于网…...

Spring MVC (三) —— 实战演练
项目设计 我们会将前端的代码放入 static 包下: 高内聚,低耦合 这是我们在实现项目的设计思想,一个项目里存在很多个模块,每一个模块内部的要求类与类、方法与方法要相互配合紧密联系,这就是高内聚,低耦合…...

媒体新闻发稿要求有哪些?什么类型的稿件更好通过?
为了保证推送信息的内容质量,大型新闻媒体的审稿要求一向较为严格。尤其在商业推广的过程中,不少企业的宣传稿很难发布在这些大型新闻媒体平台上。 媒体新闻发稿要求有哪些?就让我们来了解下哪几类稿件更容易过审。 一、媒体新闻发稿要求有哪…...

【游戏设计原理】82 - 巴斯特原则
巴斯特原则的核心是“对你的玩家好一点”,这一点直击游戏设计的核心——玩家体验。 现代游戏设计不仅要注重挑战性,还要关注玩家的情绪波动与行为反应。当玩家因为过高的难度感到挫败甚至愤怒时,他们往往选择退出游戏,而不是迎接…...

DDD架构实战第六讲总结:领域驱动设计中的聚合
云架构师系列课程之DDD架构实战第六讲总结:领域驱动设计中的聚合 聚合提升了对象系统的粒度,保证了业务逻辑的完整性,减少了错误产生的概率 一、引言 本讲将探讨领域驱动设计(DDD)中的重要概念——聚合。聚合是业务完整性的单元,是一个更大力度的封装。在领域驱动设计中…...

vim如何设置自动缩进
:set autoindent 设置自动缩进 :set noautoindent 取消自动缩进 (vim如何使设置自动缩进永久生效:vim如何使相关设置永久生效-CSDN博客)...

C++入门14——set与map的使用
在本专栏的往期文章中,我们已经学习了STL的部分容器,如vector、list、stack、queue等,这些容器统称为序列式容器,因为其底层是线性序列的数据结构,里面存储的是元素本身。而本篇文章我们要来认识一下关联式容器。 &am…...

单片机内存管理剖析
一、概述 在单片机系统中,内存资源通常是有限的,因此高效的内存管理至关重要。合理地分配和使用内存可以提高系统的性能和稳定性,避免内存泄漏和碎片化问题。单片机的内存主要包括程序存储器(如 Flash)和数据存储器&a…...
【gopher的java学习笔记】Java中Service与Mapper的关系详解
在后端开发中,Java作为一种广泛使用的编程语言,其架构设计和层次划分对于系统的可维护性、可扩展性和性能有着至关重要的影响。特别是在使用MyBatis等持久层框架时,Service层与Mapper层的关系更是值得深入探讨。本文将从Java Web应用程序的角…...
2025美赛B题完整代码+建模过程
问题一 为朱诺市建立一个可持续旅游产业模型。具体要求包括考虑游客数量、总收入,以及为稳定旅游业而实施的措施,明确优化因素和约束条件,并制定额外收入的支出计划,展示这些支出如何反馈到模型中以促进可持续旅游业发展,同时进行敏感性分析,讨论哪些因素最为重要。 为了…...

【MySQL】我在广州学Mysql 系列——MySQL用户管理详解
ℹ️大家好,我是练小杰,本博客是春节前最后一篇了,在此感谢大佬们今年的支持!!🙏🙏 接下来将学习MYSQL用户管理的相关概念以及命令~~ 回顾:👉【MYSQL触发器的使用】 数据…...

Linux-rt下卡死之hrtimer分析
Linux-rt下卡死之hrtimer分析 日志 超时读过程分析 #define readl_poll_timeout(addr, val, cond, delay_us, timeout_us) \readx_poll_timeout(readl, addr, val, cond, delay_us, timeout_us)34 #define readx_poll_timeout(op, addr, val, cond, sleep_us, timeout_us) \…...
【AI日记】25.01.24
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales 读书 书名:法治的细节作者:罗翔 律己 AI:8 小时,良作息:00:30-8:30&…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...

Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...

macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...