Python Rpy2找不到R.dll
我在Windows 7 64位上,使用Python 2.7.9,安装了R-3.2.0(以前也尝试过R-2.12.2和R-3.1.3,但得到了相同的结果),将Python Rpy2找不到R.dll,python,r,path,rpy2,Python,R,Path,Rpy2,我在Windows 7 64位上,使用Python 2.7.9,安装了R-3.2.0(以前也尝试过R-2.12.2和R-3.1.3,但得到了相同的结果),将C:\Program Files\R\R-3.2.0\bin\i386添加到系统路径,将R\U HOME作为系统变量添加到值C:\Program Files\R\R-3.2.0,将R\u用户添加到值“Matt”,并使用.exe文件安装了rpy2-2.3.0dev,该文件已安装 但是,在rpy2导入对象中键入会在rpy2\rinterface\
C:\Program Files\R\R-3.2.0\bin\i386
添加到系统路径,将R\U HOME作为系统变量添加到值C:\Program Files\R\R-3.2.0
,将R\u用户添加到值“Matt”,并使用.exe文件安装了rpy2-2.3.0dev,该文件已安装
但是,在rpy2导入对象中键入会在rpy2\rinterface\\uuuuu init\uuuuuu.py中出现以下错误:
Traceback (most recent call last):
File "C:\Python27\rpy2Test.py", line 2, in <module>
from rpy2 import robjects
File "C:\Python27\lib\site-packages\rpy2\robjects\__init__.py", line 14, in <module>
import rpy2.rinterface as rinterface
File "C:\Python27\lib\site-packages\rpy2\rinterface\__init__.py", line 79, in <module>
raise RuntimeError("Unable to locate R.dll within %s" % R_HOME)
RuntimeError: Unable to locate R.dll within C:Program Files\R\R-3.2.0
进入rinterface\\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
我也尝试过将bin\i386文件夹中的所有内容复制到bin文件夹中,但仍然没有任何区别
如何让rpy2找到r.dll?昨晚我制作了一个rpy2安装pdf,它解决了这个问题——路径中链接的r、Pyhton、pywin32或rpy2很可能不是32位的
也许这会有帮助-
(唯一的问题是我在C:/Python27/ArcGIS10.2/Python.exe中有Python,否则其他所有东西都应该移植。)我多次与这个问题作斗争,发现了一个可能不那么优雅,但相当简单的解决方案,解决了整个无法导入rpy2的问题。如果您也厌倦了处理env变量,那么只需在一个小python脚本中设置它,您可以在开始时导入它。
首先获取rpy2.whl包并根据
然后,只需创建一个小的python脚本,在依赖于rpy2的其他python脚本的开头导入该脚本。
对我来说,这是可行的:
from __main__import *
import os
os.environ['PYTHONHOME'] = 'C:/Program Files/Python'
os.environ['PYTHONPATH'] = 'C:/Program Files/Python/lib/site-packages'
os.environ['R_HOME'] = 'C:/Program Files/R/R-3.5.1'
os.environ['R_USER'] = 'C:/Program Files/Python/Lib/site-packages/rpy2'
# importing rpy2 now throws no errors
import rpy2.robjects as ro
在主python脚本开始时导入此脚本时,我可以使用rpy2包并从python中控制R。感谢您的回答,但我决定改用PypeR。无论如何,我试着用pip和.whl文件重新安装rpy2,我安装了singledispatch,但问题仍然存在。哇!我用的是64位的R。我真丢脸。我从没想到这会是个问题。但谢谢你解决了这个问题。这能回答你的问题吗?对不起,我不知道,我不记得那个问题了。我应该把它取下来吗?
from __main__import *
import os
os.environ['PYTHONHOME'] = 'C:/Program Files/Python'
os.environ['PYTHONPATH'] = 'C:/Program Files/Python/lib/site-packages'
os.environ['R_HOME'] = 'C:/Program Files/R/R-3.5.1'
os.environ['R_USER'] = 'C:/Program Files/Python/Lib/site-packages/rpy2'
# importing rpy2 now throws no errors
import rpy2.robjects as ro