2017-07-21 61 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

相關問題