2017-07-26 96 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中,所以你真的帮助我,再次感谢。 –