R使用reticulate出现'No module named rpytools'错误该如何解决
问题基本描述
- 编写的R脚本需通过
reticulate包调用Python脚本,在RStudio中手动逐行运行(非source方式加载整段代码)时,脚本可正常执行 - 两类场景会触发相同报错:
- 通过ScheduleR设置定时自动运行时,抛出「不存在名为'rpytools'的模块」错误,导致Python脚本无法执行;同环境下其余通过任务调度器运行的R脚本均无异常
- 在RStudio中以
source()方式整段加载代码时,可复现完全一致的错误
当前使用的环境版本
- RStudio 1.4.1103
- R 4.0.3
- Python 3.6.12
最新排查进展
- 最初判断该错误由任务调度器引发,后续确认报错本质是执行source加载代码时reticulate抛出的异常
- 异常存在固定复现规律:全新R会话中首次source加载代码时报错,第二次加载同一代码即可正常运行
复现的报错栈
Error in py_module_import(module, convert = convert) : ModuleNotFoundError: No module named 'rpytools' Calls: import ... ensure_python_initialized -> remap_output_streams -> import -> py_module_import Execution halted
待补充的排查相关信息
- 当前环境安装的reticulate包具体版本
- 报错触发时,reticulate实际绑定的Python解释器路径
- R启动时自动加载的
.Rprofile、.Renviron配置文件内容 - 脚本中reticulate初始化环节的具体逻辑(是否指定解释器路径、环境激活逻辑等)
- source加载代码时的工作目录、编码设置,与手动逐行运行时的参数差异
内容的提问来源于stack exchange,提问作者DrSchuess
相关产品推荐
相关产品推荐

