生信软件管家——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 的一些主要特点和功能:

  1. 跨平台性: Conda 可以在 Windows、Linux 和 macOS 等多个操作系统上运行,支持跨平台的软件包管理。
  2. 软件包管理: Conda 提供了一个强大的软件包管理系统,可以轻松安装、更新和删除软件包。这些软件包可以包含 Python 库、工具、依赖项等。
  3. 环境管理: Conda 允许用户创建、导出、列出、删除和更新虚拟环境,以便在不同项目中隔离和管理依赖项。
  4. 依赖项解决: Conda 能够自动解决和管理软件包之间的依赖关系,确保安装的软件包能够正确地工作。
  5. 多版本支持: Conda 允许用户同时安装多个版本的软件包,并在不同的环境中使用这些版本。
  6. 快速的安装: Conda 使用二进制包进行安装,因此安装速度较快,无需重新编译源代码。
  7. 大型软件仓库: Anaconda 发布了一个庞大的软件仓库,包含了许多常用的科学计算、数据分析、机器学习等领域的软件包。
  8. 易于使用: 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

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

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

相关文章

ubuntu 布暑python项目

在Ubuntu上部署Python项目通常包括以下几个步骤: 1 安装必要的软件: 确保系统已经安装了Python、pip(Python包管理工具)以及virtualenv(可选,用于创建独立的Python环境)。如果还没有安装&#…

RV1126画面质量一:视频基础

在聊视频画面调节之前,先来认识一下视频画面的有一些基础问题 如今我们所处的时代,是移动互联网时代,也可以说是 视频时代 。 从快播到抖音,从“ 三生三世 ” 到 “ 三十而已 ” ,我们的生活,被越来越多的 …

准备知识——波纹度和粗糙度区别与联系

在开始齿轮齿面波纹度开始前,先来学习一下基本概念——波纹度和粗糙度,废话不多说,直接开始: 什么是表面粗糙度? 表面粗糙度定义为实际表面相对于波谷的较短频率。如果去观察加工零件,会注意到它们的表面…

五、华为 RSTP

RSTP(Rapid Spanning Tree Protocol,快速生成树协议)是 STP 的优化版本,能实现网络拓扑的快速收敛。 一、RSTP 原理 快速收敛机制:RSTP 通过引入边缘端口、P/A(Proposal/Agreement)机制等&…

宝塔Linux+docker部署nginx出现403 Forbidden

本文主要讲述了宝塔docker部署nginx出现403 Forbidden的原因,以及成功部署前端的方法步骤。 目录 1、问题描述2、问题检测2.1 检测监听端口是否异常2.2 检测Docker容器是否异常2.2.1 打开宝塔Linux的软件商店,找到Docker管理器,查看前端容器是…

光交箱哑资源巡检过程中都要检查哪些设备,怎样实现智能化管理

一、光交箱哑资源管理现状 光交箱哑资源主要包括光纤、光缆、接头盒、配线架等设备。这些设备在通信网络中起着至关重要的作用,但由于缺乏智能化的监控和诊断能力,管理难度较大。 效率低下:人工巡检的频率和覆盖范围有限,资源清…

机器学习(5):支持向量机

1 介绍 支持向量机(Support Vector Machine,简称 SVM)是一种监督学习算法,主要用于分类和回归问题。SVM 的核心思想是找到一个最优的超平面,将不同类别的数据分开。这个超平面不仅要能够正确分类数据,还要使…

百度APP iOS端磁盘优化实践(上)

01 概览 在APP的开发中,磁盘管理已成为不可忽视的部分。随着功能的复杂化和数据量的快速增长,如何高效管理磁盘空间直接关系到用户体验和APP性能。本文将结合磁盘管理的实践经验,详细介绍iOS沙盒环境下的文件存储规范,探讨业务缓…

docker安装elk6.7.1-搜集java日志

docker安装elk6.7.1-搜集java日志 如果对运维课程感兴趣,可以在b站上、A站或csdn上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频 0.规划 192.168.171.130 tomcat日志filebeat 192.168.171.131 …

SpringBoot的Swagger配置

一、Swagger配置 1.添加依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version> </dependency> 2.修改WebMvcConfig Slf4j Configurat…

【自动驾驶】4 智驾生态概述

目录 1 智驾生态概述 ▲ 关键组成部分 ▲ 概述 2 关键技术 ▲ 传感器 ▲ 感知 ▲ 数据闭环 3 未来市场 1 智驾生态概述 智能驾驶生态&#xff0c;简称智驾生态&#xff0c;是指围绕智能驾驶技术的开发、应用、服务和支持所形成的产业体系和合作网络。 涵盖了从硬件设…

2025.1.20——一、[RCTF2015]EasySQL1 二次注入|报错注入|代码审计

题目来源&#xff1a;buuctf [RCTF2015]EasySQL1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;初步思路为二次注入&#xff0c;在页面进行操作 step 2&#xff1a;尝试二次注入 step 3&#xff1a;已知双引号类型的字符型注入&#xff0c;构造…

RabbitMQ 在实际应用时要注意的问题

1. 幂等性保障 1.1 幂等性介绍 幂等性是数学和计算机科学中某些运算的性质,它们可以被多次应⽤,⽽不会改变初始应⽤的结果. 应⽤程序的幂等性介绍 在应⽤程序中,幂等性就是指对⼀个系统进⾏重复调⽤(相同参数),不论请求多少次,这些请求对系统的影响都是相同的效果. ⽐如数据库…

AIGC视频生成明星——Emu Video模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video&#xff0c;作为Meta发布的第二款视频生成模型&#xff0c;在视频生成领域发挥关键作用。 &#x1f33a;优质专栏回顾&am…

Debian 上安装PHP

1、安装软件源拓展工具 apt -y install software-properties-common apt-transport-https lsb-release ca-certificates 2、添加 Ondřej Sur 的 PHP PPA 源&#xff0c;需要按一次回车&#xff1a; add-apt-repository ppa:ondrej/php 3、更新软件源缓存&#xff1a; apt-g…

office 2019 关闭word窗口后卡死未响应

最近关闭word文件总是出现卡死未响应的状态&#xff0c;必须从任务管理器才能杀掉word 进程&#xff0c;然后重新打开word再保存&#xff0c;很是麻烦。&#xff08;#其他特征&#xff0c;在word中打字会特别变慢&#xff0c;敲击键盘半秒才出现字符。&#xff09; office官网…

机器学习:支持向量机

支持向量机&#xff08;Support Vector Machine&#xff09;是一种二类分类模型&#xff0c;其基本模型定义为特征空间上的间隔最大的广义线性分类器&#xff0c;其学习策略便是间隔最大化&#xff0c;最终可转化为一个凸二次规划问题的求解。 假设两类数据可以被 H x : w T x…

[STM32 HAL库]串口空闲中断+DMA接收不定长数据

一、空闲中断 STM32的串口具有空闲中断&#xff0c;什么叫做空闲呢&#xff1f;如何触发空闲中断呢&#xff1f; 空闲&#xff1a;串口发送的两个字符之间间隔非常短&#xff0c;所以在两个字符之间不叫空闲。空闲的定义是总线上在一个字节的时间内没有再接收到数据。触发条件…

Unity Line Renderer Component入门

Overview Line Renderer 组件是 Unity 中用于绘制连续线段的工具。它通过在三维空间中的两个或两个以上的点的数组&#xff0c;并在每个点之间绘制一条直线。可以绘制从简单的直线到复杂的螺旋线等各种图形。 1. 连续性和独立线条 连续性&#xff1a;Line Renderer 绘制的线条…

QT:tftp client 和 Server

1.TFTP简介 TFTP&#xff08;Trivial File Transfer Protocol,简单文件传输协议&#xff09;是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为69。 FTP是一个传输文件的简单协议&#xff0c;…