【发布时间】:2015-07-04 00:07:16
【问题描述】:
我在 Windows 7 64bit 和 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_HOME 添加为值为 C:\Program Files\R\R-3.2.0 的系统变量,添加值为“Matt”的 R_USER,并使用已安装的 .exe 文件安装 rpy2-2.3.0dev。
但是,在 rpy2\rinterface\__init__.py 中键入 from rpy2 import robjects 会出现以下错误:
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
我试过复制粘贴这个:
if os.path.exists(os.path.join(R_HOME, 'lib')): ## ADDED ##
os.environ['PATH'] += ';' + os.path.join(R_HOME, 'bin') ## ADDED ##
os.environ['PATH'] += ';' + os.path.join(R_HOME, 'modules') ## ADDED ##
os.environ['PATH'] += ';' + os.path.join(R_HOME, 'lib') ## ADDED ##
else: ## ADDED ##
os.environ['PATH'] += ';' + os.path.join(R_HOME, 'bin', 'i386') ## ADDED ##
os.environ['PATH'] += ';' + os.path.join(R_HOME, 'modules', 'i386') ## ADDED ##
os.environ['PATH'] += ';' + os.path.join(R_HOME, 'library') ## ADDED ##
# Load the R dll using the explicit path
# First try the bin dir:
Rlib = os.path.join(R_HOME, 'bin', 'R.dll')
# Try bin/i386 subdirectory seen in R 2.12.0 ## ADDED ##
if not os.path.exists(Rlib): ## ADDED ##
Rlib = os.path.join(R_HOME, 'bin', 'i386', 'R.dll') ## ADDED ##
进入 rinterface\__init__.py,但这什么也没做。
我也尝试将 bin\i386 文件夹中的所有内容复制到 bin 文件夹中,但仍然没有区别。
如何让 rpy2 找到 r.dll?
【问题讨论】:
-
对不起,我不知道,我不记得这个问题了。我应该把它拿下来吗?