将 rpy2 与 numpy.testing 一起使用时出现 ImportError

ImportError when using rpy2 with numpy.testing

在使用 numpy.testing 模块进行单元测试时,我 运行 遇到了一个相当奇怪的错误。我在 VM 中 运行 宁一个 iPython 笔记本。在我的代码中,我进行了一项测试,将我的输出与 R 中的输出进行比较。这需要我像这样加载 rpy2 模块:

import rpy2.robjects as robjects
from rpy2.robjects.packages import importr
fastclime = importr('fastclime')
grdevices = importr('grDevices')

但是当我 运行 ! py.test 时,我得到以下错误:

====================================错误======== ============================

_____________________ ERROR collecting test_fastclime_R.py _____________________
test_fastclime_R.py:6: in <module>
    import rpy2.robjects as robjects
../../anaconda/lib/python2.7/site-packages/rpy2/robjects/__init__.py:15: in <module>
    import rpy2.rinterface as rinterface
../../anaconda/lib/python2.7/site-packages/rpy2/rinterface/__init__.py:101: in <module>
    from rpy2.rinterface._rinterface import *
E   ImportError: /home/bitnami/anaconda/bin/../lib/libreadline.so.6: undefined symbol: PC
====================== 10 passed, 1 error in 0.19 seconds ======================

我怀疑这与某些未链接到我的工作目录的环境变量有关,但我不知道如何修复它。非常感谢任何建议!谢谢!

解决方案是

1) 如果创建了以前的版本,则删除 __pycache__ 目录

2)在anaconda命令行中安装readline: conda install -c asmeurer readline

3) 在 .py 文件中包含 import readline

另一个解决方案是从环境中删除 conda 的 readline 并使用 pip 的:

conda remove --force readline
pip install readline