matplotlib不会绘制python3

2024-04-29 14:06:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在virtualenv中成功地安装了matplotlib。现在我想把它画出来。我知道如何更改后端,但我很难确定要将其更改为什么。

有没有人能让它完全和Python一起工作?如果是,怎么做?

我试过很多东西。我已经循环通过所有的后端,看看所有的投诉是什么,而不是我试图让他们中的一个工作。

同样值得注意的是,我的目标是将其集成到一个金字塔应用程序中。

到目前为止,所有不同的后端都发生了以下情况:

  • 这是默认的后端。它不会画
  • GTK:需要pygtk,显然还没有移植到python3
  • GTKAgg:同上
  • GTKCairo:说“所需的包gtk”假设如下
  • FltkAgg:看起来不像是python3版本。即使在python3 UI的FAQ中提到了它。我想那只是一种刺激。天哪,达尼特
  • 我在运行ubuntu。假定不适当
  • QtAgg:需要pyqt。见Qt4Agg
  • Qt4Agg:见Installing PyQt4 in a virtualenv
  • TkAgg:importTerror:无法导入名称TkAgg。不过,我可以在解释器中运行import tkinter,所以我还不确定是什么坏了
  • WX:importorror:Matplotlib backend_WX和backend_wxagg需要wxversion,但未找到
  • WXAgg:同上
  • cocoagg:importorror:CococaAgg后端需要安装PyObjC!
  • GTK3Cairo:ImportError:GTK3后端要求安装pygobject。我试图安装它,但当我试图用正确的python配置它时,它抱怨缺少头
  • GTK3Agg:没有名为cairo的模块。但我想我会碰到和上面一样的问题
  • cairo:cairo后端要求安装pycairo
  • emf:必须首先从http://pyemf.sf.net安装pyemf。看起来它应该做窗台的东西所以这可能不是个好的选择
  • gdk:没有名为gobject的模块
  • pdf:运行但不绘制
  • pgf:同上
  • ps:同上
  • svg:同上
  • 模板:同上。

我用来测试后端的脚本是:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show()

到目前为止,我已经花了太多的时间试图让python3.2和qt4玩得很好,我只是似乎遇到了各种各样的问题。因此,与其继续我的试错方法,我想问:

  1. Python3.2和金字塔的最佳选择是什么?
  2. 我怎样才能做到?

在此期间,我将继续尝试和错误的事情,并更新我的问题,因为我去。

关于我正在尝试的内容的注释

对于TkAgg:

由于tkinter导入正确,我假设它安装正确(如果我错了,我想有办法测试它?)。这家伙也有类似的问题,但我肯定他的设置和我的不同。解决方案是在python3.2站点包目录的内部找到tkagg.py并编辑有问题的import语句。我发现很难相信matplotlib的飞船坏了(而且我不能运行建议的修改代码…)

对于WX材料:

wxPython for Python 3说还不支持python3。而且wxPython在他们的网站上也没有提到python3,所以我想这是不可能的。选项不足:/

可可:

同上:Writing Cocoa applications in Python 3

电动势:

同上:http://pyemf.sourceforge.net/README.html


Tags: 模块inimportbackendvirtualenvmatplotlibtkinterplt
3条回答

Matplotlib似乎已经向Python 3迈出了一大步。matplotlib 1.2.0rc2(+numpy 1.7.0b2)正在为我工作

  • Python3.2.2(Linux Mint 12上的virtualenv)
  • Python 3.3.0(从源代码进行本地安装)

在这两种情况下,matplotlib都将“TkAgg”报告为后端。

不幸的是,我不知道这是否/如何适用于金字塔。

我一直在做python 3.3.2和matplotlib的源代码构建。如上所述,TkAgg起作用。如果您是从源代码构建所有内容:

  1. sudo apt get安装tk dev
  2. 重建python3(make clean;/configure;make)
  3. 清除matplotlib(从virtualenv中删除egg,从~/.config/matplotlib中删除缓存对象)
  4. 从源代码重建matplotlib(rm-r build/;python setup.py build;python setup.py install)

终于看到那个愚蠢的盒子从我的x=y线弹出。

小时。。。。

我遇到了完全相同的问题,但经过许多努力,我设法使TkAgg工作(这是给TkAgg的导入错误)。有点晚了,但也许有人会觉得有用。

FWIW I解决了以下问题(使用TkAgg):

  • 从包管理器安装
  • 从包管理器重新安装
  • 从源代码重建并重新安装
  • (当然,在matplotrc中设置TkAgg)

如果认为已正确安装tk-devpython3-tk,则需要重新生成并重新安装matplotlib,以便它在backends目录中生成_tkagg.py

我在LM14上用的是Python3.3(numpy 1.7)。但我认为它应该在Ubuntu/Python3.2上运行

相关问题 更多 >