R包:reticulate
学习资料
Demo Project
Cheatsheet:Use Python with R with reticulate
在 R Markdown 中使用Python
- knitr 版本 >= 1.18 将自动使用 reticulate 引擎处理 Python 块。请参阅
?reticulate::eng_python以获取支持的 knitr 块选项列表。 - 在代码块中r和python变量可以实现互相调取
在 R 中使用Python
从 R 代码中调用 Python 的三种方式
导入 Python 模块
引入 Python 文件
运行 Python 代码
对象转换
帮助文档
捕获并返回 Python 输出
py_capture_output("x")
py_supress_warnings("x")
获取 Python 对象的属性
py_get_attr(x)
py_set_attr()
py_has_attr()
py_list_attributes()
打开 Python 对象的文档页面
py_help(sns)
获取最后遇到的 Python 错误
py_last_error()
py_clear_last_error() # 用于清除最后错误
使用 pickle 保存和加载 Python 对象
py_save_objects(x, "x.pickle")
py_load_object(x, "x.pickle")
在 Python 上下文中评估一个表达式
py <- import_builtins()
with(py$open("output.txt", "w") %as% file,
{file$write("Hello, there!")})
在 IDE 中使用Python
RStudio IDE 中的 reticulate 功能
- 语法高亮显示 Python 脚本和代码块。
- Python 函数和对象(以及 R 脚本中导入的 Python 模块)的 Tab 补全
- 引入 Python 脚本。
- 逐行执行 Python 代码,使用
Cmd + Enter(Ctrl + Enter)。 - 在环境面板中查看 Python 对象。
- 在数据查看器中查看 Python 对象。
- 当您使用键盘快捷键运行 Python 代码时,控制台会打开一个 Python 交互式解释器。输入
exit以关闭。 matplotlib在绘图窗格中显示绘图。- 按住
F1在 Python 符号上,以显示该符号的帮助主题。
Python REPL:Python 交互式解释器
-
REPL:一个可以运行 Python 代码并查看结果的命令行
-
在控制台中通过
repl_python()打开,或通过在 Python 脚本中运行代码以Cmd + Enter(Ctrl + Enter)。reticulate::repl_python()
配置 Python
Python查询
下载并安装 Python
install_python("3.9.16")
检查是否安装了 Python
py_available()
py_module_available()
py_numpy_module()
返回检测到的 Python 安装
py_discover_config()
检查已加载的版本
py_config()
列出所有可用的虚拟环境
virtualenv_list()
virtualenv_root()
列出所有可用的 conda 环境
conda_list(conda = "auto")
conda_binary()
conda_version()
创建 Python 环境
创建一个新的虚拟环境
virtualenv_create("r-pandas")
创建一个新的 conda 环境
conda_create("r-pandas", packages = "pandas")
安装 Python 包
使用 shell 安装 Python 包
pip install SciPy
conda install SciPy
使用 R 安装 Python 包
将 Python 包安装到 Python 环境中
py_install("pandas")
在虚拟环境中安装一个包
virtualenv_install("r-pandas", packages = "pandas")
virtualenv_remove()
在 conda 环境中安装一个包
conda_install("r-pandas", packages = "plotly")
设置环境
设置方法
- 方法一:RStudio IDE 全局设置
- 方法二:项目设置
未设置环境变量时的策略
reticulate 将按照以下顺序扫描计算机上的实例,并在找到名为
import()的模块的第一个实例时停止扫描。
1. 引用环境变量 RETICULATE_PYTHON 的实例
- 提示:在 .Renviron 文件中设置
- 这个设置即使跨会话也有效
Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python")
Sys.unsetenv() # 撤销方法
2. 在调用 import() 之前由 use_ 函数处理
Python 二进制文件的路径
use_python("usr/local/bin/python")
Python 虚拟环境的路径或名称
use_virtualenv("~/myenv")
#| eval: false
use_virtualenv("~/myenv") # path to venv
use_virtualenv("r-keras") # name of venv