首页 > 编程语言 >最全面教程!在 R 语言中使用 python 与 conda(reticulate包)

最全面教程!在 R 语言中使用 python 与 conda(reticulate包)

时间:2024-09-05 09:53:50浏览次数:8  
标签:Python python 环境 reticulate Conda conda

reticulate 是一个在R语言中访问Python的强大工具。它允许R用户直接调用Pytho中的代码、函数和模块,以及在R环境中与Python进行无缝交互。

图片

reticulate的主要功能包括:

  1. 调用Python: reticulate 允许用户在R中直接调用Python代码和函数。无论是在R Markdown文档中、源Python脚本,还是在R控制台中,都可以方便地执行Python代码。

  2. 对象转换: 它支持在R和Python对象之间进行转换,例如将R数据框转换为Python的Pandas数据框,或将R矩阵转换为Python的NumPy数组,让用户可以在两种语言之间无缝传递数据。

  3. 灵活绑定Python环境: reticulate 可以与不同版本的Python解释器以及虚拟环境(如Conda环境)进行灵活绑定,使用户能够轻松地管理和使用特定的Python环境。

  4. 无缝互操作性: 通过在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

相关文章

  • 12 Python面向对象编程:运算符重载
    本篇是Python系列教程第12篇,更多内容敬请访问我的Python合集在理解运算符重载之前我们已经知道了什么是方法重载,方法重载就是子类继承父类并且定义了一个和父类一样的方法。知道了什么是重载,也知道了什么是运算符(加减乘除等),那么运算符重载也很好理解了,其实就是在......
  • 13 Python面向对象编程:装饰器
    本篇是Python系列教程第13篇,更多内容敬请访问我的Python合集Python装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码。装饰器本质上是一个接收函数作为参数的函数,并返回一个新的函数。装饰器的用途包括日志记录、性能测试、事务处理、缓......
  • 12 Python面向对象编程:运算符重载
    本篇是Python系列教程第12篇,更多内容敬请访问我的Python合集在理解运算符重载之前我们已经知道了什么是方法重载,方法重载就是子类继承父类并且定义了一个和父类一样的方法。知道了什么是重载,也知道了什么是运算符(加减乘除等),那么运算符重载也很好理解了,其实就是在类里面......
  • 13 Python面向对象编程:装饰器
    本篇是Python系列教程第13篇,更多内容敬请访问我的Python合集Python装饰器是一种强大的工具,用于修改或增强函数或方法的行为,而无需更改其源代码。装饰器本质上是一个接收函数作为参数的函数,并返回一个新的函数。装饰器的用途包括日志记录、性能测试、事务处理、缓存、权......
  • 用python编写web 界面可以用哪些库
    背景:很多人熟悉python,但不熟悉前端语言js,为了项目快速落地,也不太想去专门学习React/Angular/Vue这些框架,那么就会问一个问题,能不能用Python直接写出一个简单web界面呢?答案是可以的,而且有多种框架可以用。常见的有下面的几种,可自行搜索学习,选用适合自己的 PlotlyDash,基......
  • python2
    /转义字符,告诉python输入的符号就是符号本身,没有其他的含义join函数输入字符串,需要用str()进行转换功能:join:用于将一个可迭代对象(如列表或元组)中的元素连接成一个字符串。它需要一个字符串作为分隔符。append:用于向列表的末尾添加一个元素。它直接修改原列表。......
  • 【Python学习笔记】 第2章 Python如何运行程序
    Python解释器简介我们在Python的官网下载并安装Python后,它会生成一些组件,包括解释器和一套支持库。Python的代码必须在解释器中运行。程序运行程序员的视角一个Python程序仅是一个包含Python语句的文本文件。例:创建script0.py文件,并写上:print("Hello,world!")print(2**1......
  • 每天五分钟深度学习:广播机制(以python语言为例)
    本文重点因为向量化的计算方式导致效率的提升,所以现在很多时候,我们都是用向量化的计算,但是向量化计算有一个问题让人头痛就是维度的问题,本节课程我们将讲解python中的广播机制,你会发现这个机制的优秀之处。代码实例importnumpyasnpa=np.random.randn(3,4)b=np.random.r......
  • 2024年 Windows Python 下载、安装教程,附详细图文
    大家好,今天为大家带来的是2024年WindowsPython下载、安装教程,附详细图文,适用于Python3所有版本,包括Python3.7,Python3.8,Python3.103.9,Python3.10等版本。希望对大家有所帮助Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,一般默认装的是Py......
  • 【python】本地local_setting设置与上传仓库
    1.我们在开发过程中,有的配置数据不希望别人看到,例如:数据库信息2.如是我们可以在本地配置一个local_setting.py文件2.1:在setting中最后,导入local_settingtry:from.local_settingimport*exceptImportError:pass2.2:将自己的配置数据,写入到local_setting......