嗨,这是我的第一个stackoverflow问题,所以如果对任何错误提前抱歉。我正在尝试使用R reticulate
库。我已经安装了包,并尝试导入os
Python模块。一切似乎都没问题,但是当我开始输入例如os$listdir
时,R抛出了这个错误:Error in py_module_import(module, convert = convert) : ModuleNotFoundError: No module named 'rpytools'
。这是我的整个代码:
install.packages("reticulate")
library(reticulate)
os <- import("os")
os$listdir("")
以下是我py_config()
的输出:
python: C:\PROGRA~3\ANACON~1\python.exe
libpython: C:/PROGRA~3/ANACON~1/python36.dll
pythonhome: C:\PROGRA~3\ANACON~1
version: 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]
Architecture: 64bit
numpy: C:\PROGRA~3\ANACON~1\lib\site-packages\numpy
numpy_version: 1.12.1
os: C:\PROGRA~3\ANACON~1\lib\os.py
和py_available(TRUE)
返回TRUE
...
如果需要任何其他信息,请写信给我。
答案 0 :(得分:2)
简短的回答是您需要使用RStudio版本1.2或更高版本(目前仅可用于preview release才能获得实验性的reticulate
支持。
当前RStudio稳定版本(<1.2)中对reticulate
的支持非常不稳定,一旦尝试使用导入的模块,使用RStudio <1.2作为Python IDE的任何希望就会瓦解。在reticulate
文档中,这被称为offhand comment:
请注意,RStudio v1.2预览版包括对使用网状图在R Notebooks中执行Python块的支持。有关其他详细信息,请参见RStudio IDE Tools for reticulate文章。
您的代码在RStudio 1.2中不会引发错误:
> library(reticulate)
> os <- import("os")
> os$listdir()
[1] ".Rhistory" ".Rproj.user"
答案 1 :(得分:0)
我能够为我的工作计算机解决此问题。我不确定这是否是原因,但是我注意到我的R.exe和python.exe保存在不同的驱动程序名称中。一个在C:中,另一个在X:中。因此,我要做的是卸载R&python,然后将它们都保存到同一驱动程序中。这就是我解决问题的方式。