6

我想知道是否有一种方法可以重新加载通过reticulate包导入 R 的模块,类似于autoreloadIPython 的扩展。例如,假设我正在本地开发自己的模块,我可能会通过以下方式导入它

library(reticulate)
import_from_path("mypackage", "/path/to/package")

但是,如果我对代码进行更改,mypackage我能想到的唯一反映它们的方法就是重新启动 R。这与无法重新加载模块的正常 Python 行为一致。一种解决方法是从我正在更改的包中获取一个文件,即

source_python("/path/to/package/file.py")

但是,如果file.py正在导入本地包中正在更改的其他文件,则不会反映对这些文件的更改。

4

1 回答 1

1

可以通过调用 Python 命令重新加载:

对于 Python 2.7

> builtins <- import_builtins()
> builtins$reload(your_module)

对于 Python 3

> importlib <- import("importlib")
> importlib$reload(your_module)
于 2019-11-22T19:12:35.083 回答