2017-07-26 95 views
0

我的[R版本3.4.1是,Python版本3.5.2是,和操作系統是Ubuntu的16.04.2使用rPython進口numply與Python 3.5

我已經設置RPYTHON_PYTHON_VERSION = 3.5安裝rPython,當這是我的默認Python版本的rPython。

♥ python.exec('import sys') 
♥ python.exec('print(sys.version)') 
3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] 

當我通過rPython導入numpy的(有使用Python 3.5使用進口numpy的沒有問題,一切正常),我得到這個:

♥ python.exec('import numpy') 
Error in python.exec("import numpy") : 
Importing the multiarray numpy extension module failed. Most 
likely you are trying to import a failed build of numpy. 
If you're working with a numpy git repo, try `git clean -xdf` (removes all 
files not under version control). Otherwise reinstall numpy. 

Original error was: /usr/local/lib/python3.5/dist-packages/numpy/core/multiarray.cpython-35m-x86_64-linux-gnu.so: undefined symbol: PyType_GenericNew 

但是,如果我設置RPYTHON_PYTHON_VERSION = 2並重新安裝rPython,導入numpy的作品。我怎樣才能成功導入numpy下的python 3.5 rPython?

回答

0

首先,你可以從R/rPython導入任何軟件包到Python 3.5.3嗎?

我也有這個問題。我得到的錯誤與海報完全一樣(numpy不會加載)。後來我發現我無法導入任何包。然而,我可以在python 2.7.13和python 3.5.3中導入包(只是不通過R/rPython)。這使我相信這是一個'rPython'R軟件包錯誤。這裏有我試圖做的事情來解決這個問題:

1)我已經嘗試安裝/重新安裝R包rPython使用python 2.7.13或python 3.5.3。我可以連接R過的rPython包的重新安裝到Python 2.7.13:

install.packages("rPython",lib= "home/myusername/R/x86_64-pc-linux-gnu-library/3.4", configure.vars= "RPYTHON_PYTHON_VERSION=2") 

使用 「RPYTHON_PYTHON_VERSION = 3」 在安裝過程中同樣使我於R與Python 3.5.3連接。當rPython連接到python 2.7.13時,我可以從R中調用「import numpy」,但是當連接到3.5.3時不會。

2)我已經查明瞭以前安裝和卸載它們的所有numpy和scipy。我有python 2.7.13和python 3.5.3的每個副本。使用pip和pip3重新安裝不能解決問題(我事先重新啓動R以確保安全)。

從這兩個帳戶,這似乎是R包'rPython'的問題。你可以嘗試R更新的'reticulate'包裝,看看它是否適合你。但是,當使用網狀連接R與Python時,我無法獲得並行線程來工作,這很不幸,我需要做的。然而,使用'rPython'時,線程確實工作得很好,但我需要的包需要python 3+。如果我能解決這個問題,我會繼續排除故障並更新這篇文章。同時,給予'網狀'一槍,這是一個非常整齊的包。

編輯 我能夠使用'reticulate'包在R中從python 3.5.3加載numpy。

EDIT2對於那些誰發現這個職位在未來,唯一的解決辦法我能找到使用python3代碼與來自R多線程是調用與系統Python文件(python3「path_to_python_script」 ARG1參數3)

+0

謝謝Bartimus,我試過網狀(它是由Rstudio傢伙開發的,網狀蟒蛇是世界上最長的蛇),它可以用python 3.5導入numpy。並回答你的問題,是的,我可以導入一些其他的軟件包,例如pymongo,datetime和bson,除了python 3.5下的rPython下的numpy。我唯一關心的是將python3集成到R中,所以你真的幫助我,再次感謝。 –