【问题标题】:Why is Rpy2 not installing in my OSX Sierra terminal?为什么 Rpy2 没有安装在我的 OSX Sierra 终端中?
【发布时间】:2017-12-27 10:37:07
【问题描述】:

我看到许多不同的人发布了这个问题(例如:Tried to guess R's HOME but no R command in the PATH. OsX 10.6Installing rpy2 on Mac OSX 10.8.5),但我还没有找到可行的解决方案。

我已确保我的终端中安装了 Python-2.7,并且由于我最近通过 RStudio 进行了升级,我认为我的 R 也已更新。但每次我尝试运行:

pip install rpy2

easy_install rpy2

我不断收到与Error: Tried to guess R's HOME but no command 'R' in the PATH 相同的错误。

经过一番谷歌搜索,我决定尝试下载最新版本的 R (v 3.4.1),尽管我很确定它一开始就已经更新。但是现在我得到了以下错误的庞然大物(我应该注意我已经浓缩了它):

In file included from ./rpy/rinterface/_rinterface.c:122:
    ./rpy/rinterface/sequence.c:2173:1: warning: unused function 'ComplexVectorSexp_AsSexp' [-Wunused-function]
    ComplexVectorSexp_AsSexp(PyObject *pyfloat) {
    ^
    11 warnings generated.
    cc -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.12-intel-2.7/./rpy/rinterface/_rinterface.o -L/usr/local/lib -Lbuild/temp.macosx-10.12-intel-2.7 -L/usr/local/lib -lpcre -llzma -lbz2 -lz -licucore -lm -liconv -lr_utils -o build/lib.macosx-10.12-intel-2.7/rpy2/rinterface/_rinterface.so -fopenmp -F/Library/Frameworks/R.framework/.. -framework R
    clang: error: unsupported option '-fopenmp'
    clang: error: unsupported option '-fopenmp'
    error: command 'cc' failed with exit status 1

    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-zT8DaX/rpy2/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-bDnbE5-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-zT8DaX/rpy2/

所以现在我发生了一个完全不同的错误。我以为升级我的 R 会自动将它添加到我的环境变量 PATH 中,但现在我真的不知道如何处理这个问题。我试图用谷歌搜索这个新错误,但我似乎找不到任何适合在带有 Python-2.7 和 R-3.4 的 Mac OSX 上安装 Rpy2 的解决方案。有人可以提供任何建议吗?

附录

我现在尝试了各种其他方法,包括下载 XCODE,更新我的 GCC 编译器(http://cs.millersville.edu/~gzoppetti/InstallingGccMac.html 中描述了一种这样的方法),我还尝试使用命令 brew reinstall gcc --without-multilib 重新安装 GCC。我还编辑了我的 PATH 环境变量以包含 R、CC,但仍然没有运气。

【问题讨论】:

    标签: r macos python-2.7 rpy2


    【解决方案1】:

    关于“路径中没有 R”的错误正是它所说的。要重现,请打开终端并输入“R”:不应找到任何此类命令。解决方案是在 PATH 中找到 R。

    现在从 R-3.4 开始,在 C 中编译 R 和 R 扩展所需的工具发生了变化,而且要求的标准比人们希望的要低。这可能是 R 和 OS X 的一个问题,并且有一个开放的issue in the rpy2 tracker about it

    编辑:请注意,问题已解决,并且 rpy2-2.9.3 的预编译二进制轮现在可在 pypi 上使用。

    【讨论】:

      【解决方案2】:

      我现在发现 rpy2 安装取决于所使用的编译器类型是否正确。 Apple 的默认编译器是 clang,不支持 rpy2 的设置过程。因此,在通过 homebrew 获取 gcc 编译器后,您可以运行 brew ls gcc 来查看您的计算机上存在哪些 gcc 编译器的文件路径。然后我在终端中运行以下命令,将默认编译器从 clang 更改为文件路径 gcc-7,然后设置正确的标志(我从之前读取编译器产生的错误消息中推断出),然后安装 rpy2。

      export CC=/usr/local/Cellar/gcc/7.2.0/bin/x86_64-apple-darwin16.7.0-gcc-7
      export CFLAGS="-W"
      pip install rpy2==2.8.6
      

      我应该注意我安装了 rpy2 版本 2.8.6,因为我的脚本是在 Python 2.7 中的,而 rpy2 2.9.0 只与 Python 3.x 兼容。此外,我知道此答案可能无法充分描述每个人的问题,因此我鼓励其他用户扩展和/或更正此解决方案。

      【讨论】:

      • 这最终为我提供了完全更新的 Python 和 R 发行版(截至 2018 年 8 月 2 日)。谢谢。
      【解决方案3】:

      可以使用单个 env 命令进行 GCC 切换:

      env CC=/usr/local/Cellar/gcc/7.2.0/bin/gcc-7 pip install rpy2
      

      clang 不适用于 RPy2 的原因是 clang 4.0.0 不包含 R 使用的 -fopenmp 标志。RPy2 Bitbucket 上有 an ongoing open problem thread 关于它。

      【讨论】:

        猜你喜欢
        • 2023-03-20
        • 2013-06-24
        • 1970-01-01
        • 2017-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 2017-12-28
        相关资源
        最近更新 更多