我有一个python
脚本,内部使用rpy2
。这个脚本一直工作到最近。但是,它现在停止了工作。我收到了一个我以前没见过的错误。我可以使用以下代码行重现错误:
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpy2.robjects as robjects
cannot find system Renviron
Error in getLoadedDLLs() : there is no .Internal function 'getLoadedDLLs'
Error in checkConflicts(value) :
".isMethodsDispatchOn" is not a BUILTIN function
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.6/site-packages/rpy2-2.2.5dev_20120328-py2.6-macosx-10.6- universal.egg/rpy2/robjects/__init__.py", line 17, in <module>
from rpy2.robjects.robject import RObjectMixin, RObject
File "/Library/Python/2.6/site-packages/rpy2-2.2.5dev_20120328-py2.6-macosx-10.6-universal.egg/rpy2/robjects/robject.py", line 9, in <module>
class RObjectMixin(object):
File "/Library/Python/2.6/site-packages/rpy2-2.2.5dev_20120328-py2.6-macosx-10.6-universal.egg/rpy2/robjects/robject.py", line 22, in RObjectMixin
__show = rpy2.rinterface.baseenv.get("show")
LookupError: 'show' not found
我不知道为什么这不起作用。有没有办法解决这个问题。
答案 0 :(得分:5)
This page描述了这个问题的潜在解决方案(至少,作者描述的问题看起来非常相似):显然,必须重新编译rpy2并将新版本的R作为参数。
答案 1 :(得分:3)
rpy2-2.2.5属于上一个系列(2.2.x),并且正在使用旧版本的R(R不断发展)。
rpy2的当前版本在2.3.x系列中(最新版本为2.3.6),但它们需要Python 2.7或Python 3.3(如果你想要最新的R,你必须得到一个最新的Python; - ))
答案 2 :(得分:3)
仅供参考:对于Mac用户:按照@Bertrand Moreau分享的链接,这适用于Mac OS X 10.7.5和R 3.0.1:
cd /Users/xx/Downloads/rpy2-2.3.7
export LDFLAGS="-Wl,-rpath,/Library/Frameworks/R.framework/Resources/lib"
sudo python3.3 setup.py build --r-home /Library/Frameworks/R.framework/Resources install
sudo python3.3 setup.py install
我会将此作为对上述内容的评论,但格式化已丢失。所以新手在这里!
答案 3 :(得分:1)
我有类似的问题;我刚刚卸载然后重新安装了rpy2,现在工作正常。
答案 4 :(得分:1)
使用ubuntu 14.04
和anaconda
的{{1}}下的解决方案如下:
python2.7
这适用于命令行,也适用于conda install -c https://conda.anaconda.org/r rpy2
终端。 但是,仍然无法在pycharm
下工作,我收到与OP相同的错误。
它现在可以在pycharm
上运行,但在pycharm
终端上工作的事实有点奇怪。