2017-07-21 63 views
3

我看到一些不同的人发布这个问题(例如:Tried to guess R's HOME but no R command in the PATH. OsX 10.6Installing rpy2 on Mac OSX 10.8.5),但我还没有找到一个可行的解决方案。为什么Rpy2不能在我的OSX Sierra终端中安装?

我已经确保我在终端中安装了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划定),我也试着重新安装GCC与命令brew reinstall gcc --without-multilib。我还编辑了我的PATH环境变量以包含R,CC,并且仍然没有运气。

回答

0

我现在已经知道rpy2的安装取决于正在使用的正确类型的编译器。 Apple的默认编译器是clang,它不支持rpy2的设置过程。因此,在通过自制程序获取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的兼容此外,我知道这个答案可能没有充分描述每个人的问题,因此我鼓励其他用户扩展和/或更正此解决方案。

1

有关“PATH中无R”的错误恰恰与它所说的有关。要重现,请打开终端并输入“R”:不应该找到任何此类命令。解决方法是在PATH中找到R.

现在从R-3.4开始,在C中编译R和R扩展所需的工具已经发生了变化,而且这些需求不像人们希望的那样标准。这可以被认为是R和OS X的问题,并且有一个开放的issue in the rpy2 tracker about it

0

有可能用单个env命令执行GCC开关:

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

铛不RPy2工作的原因,是因为铛4.0.0不包括-fopenmp标志,用于由R有关于它的RPy2 Bitbucket上的an ongoing open problem thread

相关问题