前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python初体验之你需要加快你的模块安装速度

Python初体验之你需要加快你的模块安装速度

作者头像
生信技能树
发布2024-01-04 14:10:50
2010
发布2024-01-04 14:10:50
举报
文章被收录于专栏:生信技能树

通常情况下,我们拿到了Python代码后在运行它的过程中大概率上需要加载很多Python模块,但是对初学者的电脑来说,是接近于空白的,需要一个个模块自己安装。如果我们类比R语言来说,安装R包的代码是非常简洁,如下所示的规律代码安装任意包:

代码语言:javascript
复制
# https://bioconductor.org/packages/release/bioc/html/GEOquery.html
if (!requireNamespace("BiocManager", quietly = TRUE))
 install.packages("BiocManager")
BiocManager::install("KEGG.db",ask = F,update = F)
BiocManager::install(c("GSEABase","GSVA","clusterProfiler" ),ask = F,update = F)
BiocManager::install(c("GEOquery","limma","impute" ),ask = F,update = F)
BiocManager::install(c("org.Hs.eg.db","hgu133plus2.db" ),ask = F,update = F)

实际上,大家即使是没有学习过R包安装,也可以看得懂上面的代码的规律,只需要变化上面的代码里面的R包名字,就可以一行行运行代码来安装指定的包了!

当然了,说这样的简单其实仅仅是因为 “难者不会,会者不难”。一个擅长R语言的小伙伴去使用Python,如果也想如此快捷的批量安装Python的模块,就会很麻烦了。如果没有对应的Python的模块,那么第一个经典的报错如下所示:

经典的报错

这就是Python的初学者一定会遇到的这样的报错,说缺某个模块啦 :

代码语言:javascript
复制
   import pandas as pd
ModuleNotFoundError: No module named 'pandas'

前面我们介绍了由JetBrains公司开发的专业Python IDE(PyCharm) 来辅助我们安装Python模块啦 , 大家可以提前熟悉这个IDE的一些按键,:

这个IDE的一些按键

可以通过这个IDE来打开终端, 每个人的电脑也有很多其它开启终端的方法。在这个终端可以使用pip的install命令来安装任意成熟的Python模块,如下所示:

使用pip的install命令来

很明显的可以看到,它的网络速度非常慢。。。

因为我们绝大部分人都是在中国大陆地区,所以也是需要通过设置合理的镜像来加快你的模块安装速度!

代码语言:javascript
复制
 pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple 

基本上就是无敌的速度了:

无敌的速度

同样的,我们可以一次性安装多个Python的常见的模块,如下所示的代码:

代码语言:javascript
复制
 pip install seaborn matplotlib numpy  -i https://pypi.tuna.tsinghua.edu.cn/simple 

也可以把多个Python的模块和对应的版本写到requirements.txt文件里,用pip -r requirements.txt安装 ,这样的话整理不同的Python的模块和对应的版本需要花费时间但是它们就不容易出现版本冲突,一劳永逸。

如果对比R语言,其实它的批量安装R包还麻烦一点,这个技巧我在移植一些shiny应用程序就用到过:

代码语言:javascript
复制
list.of.packages <- c("shiny",
                      "tidyr",
                      'tidyverse', 
                      "clusterProfiler",
                      "DT",
                      "ashr",
                      "enrichplot",
                      "plotly")
# 这个 list.of.packages 变量,可以是读取一个含有无数个包的名字的文本文件。
all_packages = rownames(installed.packages())
save(all_packages,file = 'all_packages.Rdata')

#checking missing packages from list
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
new.packages 
packToInst <- setdiff(list.of.packages, installed.packages())
packToInst
if(T){
  lapply(packToInst, function(x){
    BiocManager::install(x,ask = F,update = F)
  })
}
lapply(intersect(packagesReq, installed.packages()),function(x){
  suppressPackageStartupMessages(library(x,character.only = T))
})
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档