我正在使用python3.3.3并且我已经安装了手动scipy 0.13.3,matplotlib 1.3.1,numpy 1.8.0(从sourgeforge下载并构建它们像$ sudo python3 setup.py或者自述文件告诉我的任何内容)去做)。我正在使用Linux Mint Maya 13.04 64bit和KDE 4.8.5
当我跑步时:
$ python3
Python 3.3.3 (default, Jan 27 2014, 12:55:04)
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pylab as pl
>>> pl.figure(figsize=(8, 6), dpi=80)
<matplotlib.figure.Figure object at 0x7f2025397450>
>>> pl.show()
>>>
我一无所获。我用谷歌搜索它,后端似乎有问题。所以我转到文件
/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/mpl-data/matplotlibrc
找到行
backend : agg
并将agg更改为TkAgg,WXAgg,GTKAgg,PS,PDF等。
对于PS,PDF,我也没有得到任何结果。如果我使用TkAgg ect,我在导入pylab时会出错。
>>> import pylab as pl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/pylab.py", line 1, in <module>
from matplotlib.pylab import *
File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/pylab.py", line 269, in <module>
from matplotlib.pyplot import *
File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/pyplot.py", line 98, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/backends/__init__.py", line 28, in pylab_setup
globals(),locals(),[backend_name],0)
File "/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py", line 8, in <module>
import tkinter as Tk, tkinter.filedialog
File "/usr/local/lib/python3.3/tkinter/__init__.py", line 40, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'
>>>
我应该告诉我在Python 2.7上没有问题。此外,我尝试从包管理器安装python3和其他包,但这不起作用(即我无法导入scipy)。
任何想法??
答案 0 :(得分:1)
很多后端都没有用pl.show()生成gui图形,比如agg,ps和pdf,它们用于生成文件。您尝试使用的其他人不适合您的系统,因为您没有安装它们。例如,对于TkAgg,您应该安装TkInter。有关详细信息,请参阅此matplotlib backend FAQ。由于您使用的是KDE,因此您可能希望使用&#39; Qt4Agg&#39;但这取决于您在系统上安装的内容。更改matplotlibrc文件是永久更改后端的一种方法,但您也可以使用以下方法动态更改它,如果您要生成文件而不是gui,这很有用:
import matplotlib
matplotlib.use('Qt4Agg')
您应该在导入其他matplotlib模块之前调用它。
答案 1 :(得分:0)
好的,我按照这些指示How to configure PyQt4 for Python 3 in Ubuntu?
找到了解决方案我不知道我所做的其他事情是否有必要,但这就是我这样做的方式。首先我使用
手动卸载python3.3rm -r /usr/local/lib/python3.3
rm -r /usr/local/bin/python3*
然后使用Synaptic安装了python3,python3-dev,python3-numpy,python3-scipy,python3-pyqt4。另外,下载并编译了matplotlib(使用自述文件中的说明)。 最后,我在stackexchange中使用了上面的响应来安装PyQT4(你可以看到我已经从synaptic安装了它,SIP也没有用,但它没有用)。
Finnaly我不得不改变后端使用Qt4Agg,所以我找到了文件:
/usr/local/lib/python3.3/site-packages/matplotlib-1.3.1-py3.3-linux-x86_64.egg/matplotlib/mpl-data/matplotlibrc
找到了后端的行并将其从agg更改为Qt4Agg
# backend : agg
backend : Qt4Agg
现在我的情节没有问题
(或者我可以使用建议的matplotlib.use('Qt4Agg'))
感谢您的帮助!