我想在我的windows机器上安装rpy2,它给了我以下著名的错误
self.convert_pycparser_error(e, csource)
File "c:\users\96171\appdata\local\temp\pip-install-lxsxk7q4\rpy2\.eggs\cffi-1.14.0-py3.6-win-amd64.egg\cffi\cparser.py", line 336, in convert_pycparser_error
raise CDefError(msg)
cffi.CDefError: cannot parse "void __cffi_extern_python_start; void _capsule_finalizer(SEXP); void __cffi_extern_python_stop;"
<cdef source string>:495:96: Illegal character '\r'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\96171\AppData\Local\Temp\pip-install-lxsxk7q4\rpy2\我做了以下工作:
我遵循了这里在windows上安装rpy2的链接,他们说我们必须下载预编译的二进制文件才能工作。
我已经从下面的链接下载了这个轮子:rpy2‑2.9.5‑cp37‑cp37m‑win_amd64.whl,但是我仍然面临着麻烦,我做了以下工作:
rpy2‑2.9.5‑cp37‑cp37m‑win_amd64.whl之后%R_USER%设置为用户名: R_USER C:\Users\my_username,但是我得到了以下错误:ERROR: rpy2-2.9.5-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.
在双星的网站上,他们说:
Rpy2 (中断,不稳定):为统计计算和图形提供对R软件环境的访问。需要R3.3,我的系统上有R3.6.2。这会导致错误吗?
发布于 2020-02-14 11:38:14
旧答案
问题是我下载了错误的轮子。cp37的意思是CPython 3.7和我的系统上有python 3.6。我下载了rpy2-2.9.5-cp36-cp36m-win_amd64.whl而不是rpy2-2.9.5-cp37-cp37m-win_amd64.whl,它成功了。
此外,当我面临R_USER和R_HOME的问题时,我在python脚本中完成了以下操作:
import os
# see the following 2 lines
os.environ['R_HOME'] = 'C:/Program Files/R/R-3.6.2'
os.environ['R_USER'] = 'C:/Users/96171/AppData/Local/Programs/Python/Python36/Lib/site-packages/rpy2' #path depends on where you installed Python. Mine is the site packages of the regular python installation, it could have been Anaconda
# importing rpy2
import rpy2.robjects as robjects
r = robjects.r
r['source']('sample_r.r')参考资料:这
更新
为了避免os calls,我能够通过将R_USER和R_HOME包含到ENVIRONMENT VARIABLES中的SYSTEM VARIABLE中来实现所需的行为。
https://stackoverflow.com/questions/60225506
复制相似问题