当前位置:首页>python>如何在R语言中调用Python

如何在R语言中调用Python

  • 2026-10-21 13:28:19
如何在R语言中调用Python

写在前面

其实大家在Rstudio中像下图这样直接创建Python脚本后,Rstudio便可以把代码直接交给Python命令解释器来处理。

或者说,大家也可以在写Rmarkdown时直接把代码块改成这样:这样也可以在代码块中执行Python命令:

print('I am Python')
## I am Python

但很多情况下我们需要R语言(R语言基础学习手册)和Python(生信Python速查手册)之间更高的交互性,例如上面我们在Rstudio中写Python脚本、利用Rmarkdown植入Python代码块、在R中调用Python包、在R和Python之间传递对象或数据框、灵活调用各版本的Python等等。这些应用对于单细胞或空转领域(空间转录组学习手册合辑)的同学尤为重要,这里给大家推荐一个神包Reticulate,能够让大家在R语言中实现向Python的无缝切换。

Reticulate的使用

二、Reticulate的使用

2.1 安装

# 可以直接从r-cran上安装  if(!require(reticulate))install.packages("reticulate")
## 载入需要的程辑包:reticulate
## Warning: 程辑包'reticulate'是用R版本4.3.3 来建造的
library(reticulate)packageVersion('reticulate')# 看一下版本
## [1] '1.35.0'

2.2 设置Python路径与环境

如果是Linux,可以如此设置reticulate调用的Python路径:

use_python("/usr/local/bin/python")

如果是Windows,那么需要加上python程序的.exe后缀名:

use_python("C:/Users/Administrator/Documents/.virtualenvs/r-reticulate/Scripts/python.exe")

当然,你也可以像conda那样创建虚拟环境来使用Python,默认的Python环境为

# 创建名为TF_GPU的虚拟环境:virtualenv_create('TF_GPU')# 激活并使用虚拟环境:use_virtualenv('TF_GPU')  # 删除对应虚拟环境:virtualenv_remove('TF_GPU')
# 查看虚拟环境:virtualenv_list()
## [1] "r-reticulate" "TF_GPU"

reticulate甚至能够直接帮你配置conda环境:

# 安装conda环境:reticulate::install_miniconda() # 创建名为my_conda的conda虚拟环境:conda_create('TF_GPU',python_version =3.9)#  指定python版本
# 激活并使用虚拟环境:use_condaenv('TF_GPU')
# 利用conda环境安装python包"tensorflow":conda_install(packages ='tensorflow-gpu')

你可以通过这种方式来查看当前reticulate下的Python配置信息:

reticulate::py_config()
## python:         C:/Users/Administrator/AppData/Local/r-miniconda/envs/TF_GPU/python.exe## libpython:      C:/Users/Administrator/AppData/Local/r-miniconda/envs/TF_GPU/python39.dll## pythonhome:     C:/Users/Administrator/AppData/Local/r-miniconda/envs/TF_GPU## version:        3.9.18 | packaged by conda-forge | (main, Dec 23 2023, 16:29:04) [MSC v.1929 64 bit (AMD64)]## Architecture:   64bit## numpy:           [NOT FOUND]## ## NOTE: Python version was forced by RETICULATE_PYTHON_FALLBACK

2.3 reticulate中Python的使用

你可以在Rmarkdown的代码框中直接写Python的原生代码:

也可以像下面这样通过R来编译Python代码,例如导入os包:

os <-import("os")

需要注意的是,在R中直接用Python,需要把原来包名.函数名的形式换为包名$函数名的形式:

os$getcwd()# 在python中应该是os.getcwd()
## [1] "H:\\公众号\\2024\\free\\如何在R语言中调用Python"

rmd文件

感兴趣的同学可以看一下我的rmd文件跟着学习一下:

链接:https://pan.baidu.com/s/1ZPOBiy1uk4_CA-AOTeDgag?pwd=5p6x

参考

https://github.com/rstudio/reticulate

如何联系我们

公众号后台消息回复不便,这里给大家留一下领取资料及免费服务器(足够支持你完成硕博生涯的生信环境)的微信号,方便各位随时交流、提建议(别问在么,直接说来意)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:

永久免费的生信、科研交流群

大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
如何搜索公众号过往发布内容
您点的每个赞和在看,我都认真当成了喜欢

最新文章

随机文章