当前位置: 首页 > 知识库问答 >
问题:

在R中导入带有网状结构的matplotlib

谭健柏
2023-03-14

我刚开始在R中使用网状包,我仍然在解决一些问题。特别是,导入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,我看到了以下内容:

/lib/x86_64-linux-gnu/libz.so.1:找不到版本ZLIB_1.2.9(需要/home/craig/anaconda3/lib/python3.6/site-package/matplotlib/... /.. /. /./libpng16.so.16)

安装zlib(使用sudo apt get install lib64z1 dev lib64z1)似乎没有改变任何事情。FWIW,import matplotlib工作得很好,只要我不需要pyplot。

我还尝试在R降价文档中执行相同的操作:

```{r}
library(reticulate)
py_discover_config()
```

```{python}
import matplotlib.pyplot as plt
```

这次我看到:

错误在py_get_attr_impl(x,名称,静默):属性错误:模块'matplotlib'没有属性'pyplotlib'调用:...$.python.builtin.object-

有什么想法吗?

谢谢!

更新:正如我在评论中提到的,安装开发人员版本的Networkite修复了一些问题,但不是全部。如果我尝试运行此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出现了一个类似的错误,就我所知,这似乎是在一个不太相关的上下文中出现的。


共有3个答案

仇经武
2023-03-14

我在reticulate中发现了相同的错误,它不是从anaconda库中读取zlib,而是从/lib/x86\u 64-linux-gnu/中读取zlib。

每次使用脚本时,我都会从终端运行以下行,而不是符号链接:

export LD_LIBRARY_PATH=/home/craig/anaconda3/lib/:$LD_LIBRARY_PATH

实际上,您可以从R脚本内部运行它,给出:

system('export LD_LIBRARY_PATH=/home/craig/anaconda3/lib/:$LD_LIBRARY_PATH')
拓拔麒
2023-03-14

通过sym将conda lib文件链接到/lib/x86\u 64-linux-gnu/,我可以让它与我的conda安装一起工作。

ln-s-f /opt/miniconda/lib/libz.so.1 /lib/x86_64-linux-gnu/libz.so.1

我注意到,如果我使用相同的导入单独运行python,它会运行得很好。看来,Networkite并没有将conda lib“视为”libz的源代码,而是查看了/lib/x86_64-linux-gnu/目录。

Python:3.6康达:4.5.1操作系统:Ubuntu 14.04.1 LTS

谭兴学
2023-03-14

通过将R标记代码块更改为:

```{r}
library(reticulate)
use_python('/usr/bin/python3')
```

```{python}
import matplotlib.pyplot as plt
```

我仍然不太明白为什么,但看起来网状结构对水蟒的安装效果不太好。也许这与anaconda被设置为与互动Jupyter笔记本配合良好有关。

 类似资料:
  • 我将algs4添加到java项目中的引用库中,但当我编译以下项目时,vscode不断显示“RandomWord.java:1:错误:包edu.princeton.cs.algs4不存在”[1]:https://i.stack.imgur.com/SqmqP.jpg [2]: https://i.stack.imgur.com/PMwzz.jpg

  • 问题内容: 我正在尝试使用该软件包在R中导入python模块。该模块可以在这里找到。我克隆了存储库并运行成功。如果打开python shell,则可以导入。但是,当我尝试将其导入RStudio时,出现以下错误: 我在macOS Sierra版本10.12.6上并通过Anaconda安装了python 3.6。我也尝试过给出python的路径为: 当我从终端运行python时,我得到: 不确定pyt

  • 本文向大家介绍数据结构中的R *树,包括了数据结构中的R *树的使用技巧和注意事项,需要的朋友参考一下 基本概念 在数据处理的情况下,R *树被定义为为索引空间信息而实现的R树的变体。 R *树比标准R树的建造成本稍高,因为可能需要重新插入数据。但是生成的树通常具有更好的查询性能。与标准R树相同,它可以存储点和空间数据。R *树的概念由Norbert Beckmann,Hans-Peter Kri

  • 我试图定义一个结构,该结构可以作为的迭代器,该向量保存在: 相比之下,可以在”中进行在线初始化,如下所示(故意冗长): 有没有办法定义一个实现的结构,当第二个迭代器是从第一个容器派生出来的(并保存从第一个容器获得的引用)时,它同时保存Ref(以保持不可变的借用)和(以维护的迭代器状态,而不是为或任何其他容器滚动我自己的迭代器? 我尝试了几种方法来实现它,但都与借用检查器相冲突。如果我将两个状态都作

  • 通过Three.js模型数据导入导出过程的学习,可以让你对Threejs解析加载外部模型的过程更为了解。 Threejs导出模型信息 你可以通过下面代码导出模型的各类信息,然后在浏览器控制台打印出来模型数据,然后复制浏览器控制台模型数据粘贴到json文件中,最后可以尝试加载解析这些Threejs导出的json文件。之所以这么做,是为了让你理解其它三维软件,比如3dmax、blender软件导出的三

  • 问题内容: 好的,我有一个主包和一个http处理程序包。本质上,我想做的是设置一个全局结构,以便我可以随时调用该结构中的信息。 下面是我尝试的示例的基本概述:主程序包导入处理程序函数主程序包调用handlerfunc Handlerfunc将http.ResponseWriter和其他项设置为UrlInfo结构Handlerfunc在函数中传递(不必将UrlStruct传递到函数中)Run函数(在