我刚开始在 R 中使用 reticulate 包,但我仍然发现了一些问题。特别是,导入 matplotlib 并不顺利。我尝试了两种不同的方法,每种方法都有不同的错误消息。
首先,在 RStudio 的交互式 shell 中使用 repl_python:
library(reticulate)
use_python('/home/craig/anaconda3/bin/python')
py_discover_config()
repl_python()
import matplotlib.pyplot as plt
打开的 REPL Python shell 似乎具有正确的版本和所有内容,但是当我尝试导入 matplotlib.pyplot 时,我看到以下内容:
ImportError:/lib/x86_64-linux-gnu/libz.so.1:找不到版本“ZLIB_1.2.9”(/home/craig/anaconda3/lib/python3.6/site-packages/matplotlib/../ 需要../.././libpng16.so.16)
安装 zlib(使用sudo apt-get install lib64z1-dev lib64z1
)似乎没有改变任何东西。FWIW,import matplotlib
工作得很好,只要我不需要pyplot
.
我也尝试在 R Markdown 文档中做同样的事情:
```{r}
library(reticulate)
py_discover_config()
```
```{python}
import matplotlib.pyplot as plt
```
这次我看到了:
py_get_attr_impl(x,name,silent)中的错误:AtributeError:模块'matplotlib'没有属性'pyplot'调用:... $.python.builtin.object -> py_get_attr -> py_get_attr_impl -> .Call 执行停止
有什么想法可能会在这里发生吗?
谢谢!
更新:正如我在评论中提到的,安装 reticulate 的开发者版本修复了一些问题,但不是全部。如果我尝试运行这个 Rmd:
```{r}
library(reticulate)
use_python('/home/craig/anaconda3/bin/python')
```
```{python}
import matplotlib.pyplot as plt
```
我收到以下错误消息:
Error in py_run_string_impl(code, local, convert) :
ImportError: /home/craig/anaconda3/lib/python3.6/site-packages/PyQt5/../../../libxcb-dri3.so.0: undefined symbol: xcb_send_request_with_fds
Detailed traceback:
File "<string>", line 1, in <module>
File "/home/craig/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py", line 116, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/home/craig/anaconda3/lib/python3.6/site-packages/matplotlib/backends/__init__.py", line 60, in pylab_setup
[backend_name], 0)
File "/home/craig/anaconda3/lib/python3.6/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module>
from .backend_qt5 import (
File "/home/craig/anaconda3/lib/python3.6/site-packages/matplotlib/backends/backend_qt5.py", line 18, in <module>
import matplotlib.backends.qt_editor.figureoptions as figureoptions
File "/home/craig/anaconda3/lib/python3.6/site-packages/matplotlib/backends/qt_editor/figureoptions.py", line 20, in <module>
Calls: <Anonymous> ... force -> py_run_string -> py_run_string_impl -> .Call
Execution halted
当我尝试用谷歌搜索错误文本时,xcb 的类似错误似乎确实出现在一个上下文中,据我所知,它并不那么相关。