【问题标题】:Getting error in installing rpy2 on windows在 Windows 上安装 rpy2 时出错
【发布时间】:2013-02-25 00:40:39
【问题描述】:

我正在尝试安装 rpy2 包并同时出现以下错误

C:\python27>easy_install rpy2

Searching for rpy2
Reading http://pypi.python.org/simple/rpy2/
Reading http://rpy.sourceforge.net
Best match: rpy2 2.3.3
Downloading http://pypi.python.org/packages/source/r/rpy2/rpy2-2.3.3.tar.gz#md5=6cd95eb70645577cb53198ef0a32395e
Processing rpy2-2.3.3.tar.gz
Running rpy2-2.3.3\setup.py -q bdist_egg --dist-dir c:\users\chetan~1\appdata\local\temp\easy_install-wfxip9\rpy2-2.3.3\egg-di
st-tmp-rrezfb
"C:\PROGRA~2\R\R-28~1.0\bin\R" CMD config --ldflags
Invalid substring

in string

C:\Python27\lib\site-packages\setuptools\command\easy_install.py:921: RuntimeWarning: tp_compare didn't return -1 or -2 for ex
ception
  raise DistutilsError("Setup script exited with %s" % (v.args[0],))
error: Setup script exited with Problem while running `"C:\PROGRA~2\R\R-28~1.0\bin\R" CMD config --ldflags`

当我尝试 pip 这就是我得到的

c:\Python27\Lib\site-packages\django\bin>pip install rpy2

下载/解压 rpy2 为包 rpy2 运行 setup.py egg_info

"C:\PROGRA~2\R\R-28~1.0\bin\R" CMD config --ldflags
Invalid substring

in string

Problem while running `"C:\PROGRA~2\R\R-28~1.0\bin\R" CMD config --ldflags`

【问题讨论】:

  • conda install rpy2 仅适用于 Windows。

标签: rpy2


【解决方案1】:

最近不得不尝试从源代码构建它。获得了 rpy2-2.2.2 版本,因此我可以在 Oracle Linux 上与 Python 2.6.6 一起使用。

解决这个问题的方法是修复 setup.py 脚本中的一些问题。

首先,允许 get_rconfig() 允许空字符串。如果有办法标记这一点,那对我来说并不明显:

    config = RConfig()
    for about in ('--ldflags', '--cppflags',
                  'LAPACK_LIBS', 'BLAS_LIBS'):
        #config += get_rconfig(r_home, about)
        config += get_rconfig(r_home, about, allow_empty = True)

其次,使用 RConfig.from_string 中的 dropthrough 修复一个错误,它引用了一个不存在的变量:

            elif rconfig_m is None:
                if allow_empty:
                #if allow_empty and (rconfig == ''):
                    print(cmd + '\nreturned an empty string.\n')

然后,这允许解析 R CMD 配置循环和空案例(如果您的 R 构建未构建为共享库,您可能会遇到这种情况)并且我能够完成循环

python setup.py build install

【讨论】:

  • 我在处理 Python 2.6 和 rpy2 时遇到了类似的问题。最终,我发现 2.3.10 似乎是与 Python2.6 兼容的 rpy2 的最后一个版本。所以所有需要做的就是sudo pip install rpy2==2.3.10
  • @Robert:谢谢你的发帖,虽然之前的检查是if rconfig_m is None,你为什么还要检查rconfig_m == ''
  • 好问题@name_masked。正如您所注意到的,我正在进行代码破解,并且可能将 rconfig 盲目替换为 rconfig_m。你是对的,空字符串不等于无。通过修复上述帖子,随意获得一些编辑功劳。
【解决方案2】:

错误

"C:\PROGRA~2\R\R-28~1.0\bin\R" CMD config --ldflags

可能是由于windows中没有类似unix的工具造成的。 (你可能也有类似的错误

'sh' 不是内部或外部命令、可运行程序或批处理文件

通过安装 Rtools 和 mingw 编译器并更改 setup.py 和 unixccompiler.py 文件,我终于让它在 Windows 7 上运行。见rpy2 install on windows 7

也是错误

%load_ext rmagic

RuntimeError("无法在 %s 内找到 R.dll" % RHOME)

是由于 rpy2 无法在代码中正确找到 R.dll 造成的。您可以在外部文件夹中添加 R_HOME 环境变量,例如 C:\Program Files\R\R-3.0.2(详情请参阅链接)。

希望这会有所帮助..

【讨论】:

    【解决方案3】:

    我也花了几天时间...然后我偶然发现了this thread,其中给出了一个链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/#rpy2

    在此页面上,您可以找到(以及其他有用的东西)用于 Windows 和不同版本 Python 的 rpy2 的预编译版本。它显然只适用于 R 2.15.3,我没有尝试其他版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-23
      • 2013-04-05
      • 2014-06-14
      • 2018-09-10
      • 2018-09-29
      • 2017-02-06
      • 2014-05-23
      • 2016-05-03
      相关资源
      最近更新 更多