reticulate 是一个在R语言中访问Python的强大工具。它允许R用户直接调用Pytho中的代码、函数和模块,以及在R环境中与Python进行无缝交互。
reticulate的主要功能包括:
-
调用Python: reticulate 允许用户在R中直接调用Python代码和函数。无论是在R Markdown文档中、源Python脚本,还是在R控制台中,都可以方便地执行Python代码。
-
对象转换: 它支持在R和Python对象之间进行转换,例如将R数据框转换为Python的Pandas数据框,或将R矩阵转换为Python的NumPy数组,让用户可以在两种语言之间无缝传递数据。
-
灵活绑定Python环境: reticulate 可以与不同版本的Python解释器以及虚拟环境(如Conda环境)进行灵活绑定,使用户能够轻松地管理和使用特定的Python环境。
-
无缝互操作性: 通过在R中嵌入一个Python会话,reticulate 实现了高效的互操作性,为那些需要同时使用R和Python的数据科学家和开发人员提供了极大的便利。
一、R包安装
CRAN已于2018年3月21日收录reticulat包,可以通过最常用的安装命令安装此包:
install.packages("reticulate") # 安装reticulate包
library(reticulate) # 安装后需要引用才可进行使用
二、进行conda环境管理
命令非常多,我选几个使用的介绍给各位铁子,有更多需求可以去看看官方文档。
1. 查看当前可用conda环境
可以看到我目前总共有8个环境:
conda_list()
# name
#1 base
#2 R
#3 env
#4 build-tools
#5 nanopolish
#6 python3
#7 rna-seq
#8 cellranger
2.使用reticulate指定Conda环境
如前所述,reticulat可以指定使用特定的conda环境:
# 启用conda base环境
use_condaenv("base", required = TRUE)
# 启用python3命名的conda环境,不了解conda的铁子建议用之前最好先看看conda的原理
use_condaenv("python3", required = TRUE)
3.在指定conda环境安装软件包
# 在名为 "env" 的 Conda 环境中安装 nanopolish
conda_install(
packages = c("nanopolish"),
envname = "env"
)
4.甚至可以直接创建或删除conda环境
# 创建名为 "newenv" 的 Conda 环境
conda_create(
envname = "newenv", # 设置新环境的名称为 "newenv"
packages = c("numpy", "pandas"), # 指定需要安装的软件包列表
python = "3.8" # 指定 Python 版本为 3.8
)
# 移除名为 "env" 的 Conda 环境
conda_remove(envname = "env")
5.更多命令
conda_clone() # 克隆已存在的 Conda 环境,创建一个具有相同包配置的新环境。
conda_export() # 将 Conda 环境中的包信息导出到 YAML 文件,方便共享和复制环境配置。
conda_version() # 返回当前安装的 Conda 版本信息。
conda_update() # 更新 Conda 管理的所有软件包及其依赖项到最新版本。
conda_python() # 返回当前 Conda 环境中的 Python 版本信息。
conda_search() # 在 Conda 仓库中搜索符合条件的软件包。
condaenv_exists() # 检查指定名称的 Conda 环境是否存在。
三、调用python包
感谢作者的包装和设计,使得reticulate调用python的方式并不复杂。不过需要提醒一下,在一次R会话中,一旦Python解释器被启动,就不能更改了。
1.安装Python库
在base中安装pandas库:
py_install(packages = "pandas", envname = "base")
2.运行python命令或脚本
运行python命令(其它同理):
py_run_string("print('Hellow world')")
# Hellow world
运行python脚本 script.py:
py_run_file("script.py")
3.导入自定义python函数
可以在R中导出预先写好的python脚本函数:
source_python("sum.py")
# sum里面可以有你自定义的python函数,这样就可以在R语言中使用
4.调用Python函数和访问变量
可以使用定义的python对象,通过”$“符号调用函数和访问变量:
# 将python_variable变量赋值为43
r_variable <- 42
py_run_string("python_variable = r_variable")
# R中使用os库的模块
os <- import("os") # 导入python库
os$getcwd() # 引用os的getcwd模块函数,获得当前工作目录
5.检查当前python环境
可以检查当前使用的Python环境是否正确:
py_config()
更多使用介绍可以查看官方文档:https://rstudio.github.io/reticulate/index.html
就分享到这里了!
标签:Python,python,环境,reticulate,Conda,conda From: https://blog.csdn.net/weixin_49214410/article/details/141923076