2016-09-21 57 views
0

我在用python3.5运行matplotlib.pyplot和tkinter时遇到了麻烦。我在Ubuntu 12.04.5 LTS上。当我输入dpkg -l python3-tk时,我看到安装了python3-tk。我应该如何排除故障?用Tkinter和python3.5导入错误

python3-tk仅适用于python3.2而不适用python3.5吗?

实例下面python3.2与python3.5安装

machine:~$ /usr/bin/python3 
Python 3.2.3 (default, Jun 18 2015, 21:46:58) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import tkinter 
>>> exit() 

machine:~$ /usr/bin/python3.5 
Python 3.5.2 (default, Jul 17 2016, 17:38:18) 
[GCC 4.6.3] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import tkinter 
Traceback (most recent call last): 
    File "/usr/lib/python3.5/tkinter/__init__.py", line 36, in <module> 
    import _tkinter 
ImportError: No module named '_tkinter' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python3.5/tkinter/__init__.py", line 38, in <module> 
    raise ImportError(str(msg) + ', please install the python3-tk package') 
ImportError: No module named '_tkinter', please install the python3-tk package 

python3-TK

machine:~$ dpkg -l python3-tk 
Desired=Unknown/Install/Remove/Purge/Hold 
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend 
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) 
||/ Name       Version      Description 
    +++-============================-============================- 

======================================================================== 
ii python3-tk     3.2.3-1      Tkinter - Writing Tk applications with Python 3.x 
+0

我怀疑_tkinter.so,编译自_tkinter.c,位于/ usr/bin/python3中,并且它也需要位于/usr/bin/python3.5中的相应位置。是否需要重新编译为3.5(如Windows上的情况)或者仅仅是复制,我不知道。 –

回答

0

的python3-TK文库3.2版本下安装,而不是3.5。 Python3-TK卸载并安装python3.5-tk的,而不是

1
sudo apt-get install python3-tk 

此命令将安装的Tkinter作为默认python3而已,所以python3.5导入错误。

您可以运行下面的命令来安装python3.5

sudo apt-get install python3.5-tk 
0

更改matplotlib后端“AGG”或其他一些非交互式选项。像下面这样:

matplotlib.use( 'AGG')

More info here(在码头工人,在那里我遇到这个问题,并成功地解决了它的上下文中):