python - %load_ext rpy2.ipython 出错:“CompiledFFI”对象没有属性“ffi”
问题描述
我正在尝试在 Jupyter Notebook 的主要 Python 脚本中运行一些 R 代码。
我在终端上安装了 conda rpy2。调用import rpy2
我的脚本有效。
但是当我尝试运行%load_ext rpy2.ipython
(这是运行 R 代码的必要步骤)时,出现以下错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-13-fb23c6edefe4> in <module>
----> 1 get_ipython().run_line_magic('load_ext', 'rpy2.ipython')
~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth)
2312 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
2313 with self.builtin_trap:
-> 2314 result = fn(*args, **kwargs)
2315 return result
2316
</Users/dpatrick/opt/anaconda3/lib/python3.7/site-packages/decorator.py:decorator-gen-64> in load_ext(self, module_str)
~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f, *a, **k: f(*a, **k)
188
189 if callable(arg):
~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/magics/extension.py in load_ext(self, module_str)
31 if not module_str:
32 raise UsageError('Missing module name.')
---> 33 res = self.shell.extension_manager.load_extension(module_str)
34
35 if res == 'already loaded':
~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/extensions.py in load_extension(self, module_str)
78 if module_str not in sys.modules:
79 with prepended_to_syspath(self.ipython_extension_dir):
---> 80 mod = import_module(module_str)
81 if mod.__file__.startswith(self.ipython_extension_dir):
82 print(("Loading extensions from {dir} is deprecated. "
~/opt/anaconda3/lib/python3.7/importlib/__init__.py in import_module(name, package)
125 break
126 level += 1
--> 127 return _bootstrap._gcd_import(name[level:], package, level)
128
129
~/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py in _gcd_import(name, package, level)
~/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py in _find_and_load(name, import_)
~/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)
~/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py in _load_unlocked(spec)
~/opt/anaconda3/lib/python3.7/importlib/_bootstrap_external.py in exec_module(self, module)
~/opt/anaconda3/lib/python3.7/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/ipython/__init__.py in <module>
----> 1 from . import rmagic
2
3 load_ipython_extension = rmagic.load_ipython_extension
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/ipython/rmagic.py in <module>
53 # numpy and rpy2 imports
54
---> 55 import rpy2.rinterface as ri
56 import rpy2.rinterface_lib.callbacks
57 import rpy2.robjects as ro
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/rinterface.py in <module>
5 import typing
6 from rpy2.rinterface_lib import openrlib
----> 7 import rpy2.rinterface_lib._rinterface_capi as _rinterface
8 import rpy2.rinterface_lib.embedded as embedded
9 import rpy2.rinterface_lib.conversion as conversion
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/rinterface_lib/_rinterface_capi.py in <module>
8 from _rinterface_cffi import ffi
9 from . import conversion
---> 10 from . import embedded
11 from . import memorymanagement
12
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/rinterface_lib/embedded.py in <module>
6 from _rinterface_cffi import ffi
7 from . import openrlib
----> 8 from . import callbacks
9
10 _options = ('rpy2', '--quiet', '--no-save')
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/rinterface_lib/callbacks.py in <module>
34
35 @ffi_proxy.callback(ffi_proxy._consoleflush_def,
---> 36 ffi)
37 def _consoleflush():
38 try:
~/opt/anaconda3/lib/python3.7/site-packages/rpy2/rinterface_lib/ffi_proxy.py in decorator(func)
42 'void', ('SEXP',))
43 _evaluate_in_r_def = SignatureDefinition('_evaluate_in_r',
---> 44 'SEXP', ('SEXP args',))
45
46
AttributeError: 'CompiledFFI' object has no attribute 'ffi'
这个“CompiledFFI”错误到底是什么?我应该如何解决它?
非常感谢你的帮助!
解决方案
推荐阅读
- openstreetmap - OpenStreeMap:导出一个地方的边界
- eclipse - 在阶段 (JavaFx) (Eclipse) 之间传递值
- angular - 在 IONIC 中创建新应用程序时如何解决代理错误?
- sql - 如何在 Laravel 中将所有具有共同标题的行组合在一起
- celery - 芹菜 - 检测空闲工人的信号
- javascript - 检测天气用户点击文本区域内的文本或空白
- node.js - 码头工人:npm 错误!ENOENT
- java - 运行我的 Spring Boot 应用程序时出现 UnsupportedDependencyException
- python - 在 MacOS 中通过 Selenium 上传文件(python 脚本)
- ruby-on-rails - 在哈希数组循环上创建 CSV