2014-02-07 58 views
0

我使用python3.3.3,我已經手動安裝scipy 0.13.3,matplotlib 1.3.1,numpy 1.8.0(從sourgeforge下載並構建它們像$ sudo python3 setup.py或者自述文件告訴我要做的事情)。我使用的是Linux Mint的瑪雅13.04 64位與KDE 4.8.5看不到劇情與pylab

當我跑步時:

$ 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

我不知道是什麼問題,但改變站點包代碼似乎是一個不好解決任何影響問題的可移植性。在特定的代碼中執行諸如'matplotlib.use('QtAgg')'而不是更改標準庫的源代碼會更安全嗎? – chase

+0

@chase fair enought但不會解決問題。使用上述提供的錯誤是無法識別的後端。當使用「PDF」或「GTKAgg」我沒有得到任何結果,而與「GTK」我得到恩eroor了這項呼籲爲「QTAgg」我得到一個錯誤沒有影響 – stefanos

回答

0

好吧,我達到這些方向How to configure PyQt4 for Python 3 in Ubuntu?

我不知道的東西,我沒有其餘的人necessery以下的解決方案,但是這是我所採取的方式。第一我卸載使用

rm -r /usr/local/lib/python3.3 
rm -r /usr/local/bin/python3* 

然後安裝python3,python3-dev的,python3-numpy的,python3-SciPy的,採用突觸python3-PyQt4的手動python3.3。此外,下載並編譯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」))

感謝您的幫助!

1

許多後端將不會生成帶有pl.show()的GUI圖形,如agg,ps和pdf,它們是用於生成文件的。因爲您沒有安裝它們,您嘗試使用的其他系統不適合您的系統。例如,對於TkAgg,您應該安裝TkInter。有關更多信息,請參見matplotlib backend FAQ。由於您使用的是KDE,您可能需要使用'Qt4Agg',但這取決於您在系統上安裝的內容。更改matplotlibrc文件是永久改變後端的一種方式,但你也可以使用以下方法來改變它的飛行,舉例來說如果要生成的文件,而不是GUI這是有用的:

import matplotlib 
matplotlib.use('Qt4Agg') 

你應該在導入其他matplotlib模塊之前調用它。

+0

;無法識別的後端字符串「qtagg」。對於'QT4Agg',我有另一個ImportError:No module'sip'。我假設我沒有安裝這些後端,但我如何安裝它們? matplotlib能看到它們嗎? – stefanos

+0

我添加了一個指向matplotlib後端常見問題的鏈接,該鏈接將包含應該安裝哪些內容以使用每個後端。您可以使用'pip install module'或'easy_install module'輕鬆安裝模塊。 – pseudocubic

+0

感謝您的建議。我一直試圖在過去的半小時內安裝TkInter,WXAgg,Agg,但是我終究無法安裝它們,這太複雜了。有什麼更直接的? – stefanos