在Windows上安装rpy2

4

我试图在运行Windows 10的机器上安装rpy2。我已经安装了R 3.4.4(64位),并且在RGui中正常工作。然后我尝试使用pip安装rpy2,但是遇到了一个错误,它无法找到R,所以我将c:\ Program Files \ R \ R-3.4.4 \ bin \添加到我的路径环境变量中。现在当我执行

pip install rpy2

我遇到了一个不同的错误:
命令 '('c:\PROGRA~1\R\R-34~1.4\bin\x64\R', 'CMD', 'config', '--ldflags')' 返回了非零的退出状态 1。
下面是完整的输出。你有什么想法我做错了什么吗?
pip install rpy2

Collecting rpy2
  Downloading https://files.pythonhosted.org/packages/88/f7/788e5e1587bc1ab48b5b0467f9c3a08ef5aadbd993ed835559a10e452121/rpy2-2.9.3.tar.gz (193kB)
Complete output from command python setup.py egg_info:
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

'sh' is not recognized as an internal or external command,
operable program or batch file.
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
c:\PROGRA~1\R\R-34~1.4\bin\x64\R CMD config --ldflags
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\py\AppData\Local\Temp\pip-build-qz4rb_4o\rpy2\setup.py", line 374, in <module>
    ri_ext = getRinterface_ext()
  File "C:\Users\py\AppData\Local\Temp\pip-build-qz4rb_4o\rpy2\setup.py", line 269, in getRinterface_ext
    ldf = shlex.split(' '.join(rexec.cmd_config('--ldflags')))
  File "C:\Users\py\AppData\Local\Temp\pip-build-qz4rb_4o\rpy2\setup.py", line 222, in cmd_config
    universal_newlines = True)
  File "c:\users\py\miniconda3\lib\subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "c:\users\py\miniconda3\lib\subprocess.py", line 708, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('c:\\PROGRA~1\\R\\R-34~1.4\\bin\\x64\\R', 'CMD', 'config', '--ldflags')' returned non-zero exit status 1

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\py\AppData\Local\Temp\pip-build-qz4rb_4o\rpy2\

当从cmd运行"c:\PROGRA~1\R\R-34~1.4\bin\x64\R" CMD config --ldflags时,会输出什么?此外,您的Python是64位的吗? - CristiFati
如果我尝试从命令提示符中运行以下命令: "c:\PROGRA1\R\R-341.4\bin\x64\R" CMD config --ldflags 则会显示以下错误信息:'sh' 不是内部或外部命令,也不是可运行的程序或批处理文件。 - pyguy
我相信 Python 是 64 位的:platform.architecture() 返回 ('64bit', 'WindowsPE'),而 sys.maxsize 是 9223372036854775807。 - pyguy
1个回答

6

输出包含错误:

'sh' 不被识别为内部或外部命令

但我认为它只是一个警告(因为它之后还有输出)。
shShell)是特定于Nix的,自然不存在于Win上。但是,如果您安装了Win的端口,或者Nixenv仿真器(如CygwinMSYS2等),它可能会起作用。

这里是[ReadTheDocs.RPy2]: Installation的内容(其中有“在Linux上编译”和“在OS X上编译”的部分,但没有关于Win的内容,尽管它提到应该可以成功编译)

目前没有为 Microsoft Windows 提供二进制文件或支持(主要是因为缺乏资源)。
Microsoft Windows 的非官方和不受支持的二进制文件由 Christoph Gohlke(http://www.lfd.uci.edu/~gohlke/pythonlibs)提供;除此之外,目前几乎没有针对这个平台的支持。

更新#0

添加@pyguy在评论中提到的步骤,以成功安装RPy2


谢谢。我也认为“sh”是一个警告,并且与Windows无关。在rpy2安装说明中,“从源代码安装”部分没有提到这对Windows无效- 我猜这应该很清楚地反映在有关Windows的上述评论中(对某些更有经验的人可能很明显)。 - pyguy
1
如果有人感兴趣,我成功地在Windows上安装了rpy2(我使用的是Python 3.5.2)。
  1. 从上面的Christoph Gohlke链接下载正确的wheel文件(我下载了rpy2-2.9.3-cp35-cp35m-win_amd64.whl)
  2. 以管理员身份打开cmd窗口并cd到包含wheel的目录
  3. 运行'pip install rpy2-2.9.3-cp35-cp35m-win_amd64.whl'
  4. 创建一个新的用户环境变量R_USER,设置为您的Windows用户名
- pyguy
谢谢!我已经将步骤添加到答案中,以便更加清晰可见。 - CristiFati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接