ImportError: Nenhum módulo chamado '_tkinter', por favor instale o pacote python3-tk

2

Após um sudo apt-get upgrade , recebo o seguinte erro:

Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] 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

Eu tenho python3-tk instalado. Eu já tentei limpá-lo e instalá-lo. Não muda nada. (Curiosamente, o /usr/lib/python3.5/tkinter ainda existia após a prugação ... e removê-lo manualmente só levou a outro erro)

Como posso resolver este problema?

Não resolveu o problema:

$ sudo apt-get install tk8.6-dev
$ sudo apt-get install python3-tkinter # does not exist
$ sudo apt-get install python3-tk  # exists and is installed

Comente as respostas

$ ls -l /usr/lib/python3.5/tkinter
total 372
-rw-r--r-- 1 root root   1791 Nov 28 17:50 colorchooser.py
-rw-r--r-- 1 root root   1412 Nov 28 17:50 commondialog.py
-rw-r--r-- 1 root root   1493 Nov 28 17:50 constants.py
-rw-r--r-- 1 root root   1568 Nov 28 17:50 dialog.py
-rw-r--r-- 1 root root  11488 Nov 28 17:50 dnd.py
-rw-r--r-- 1 root root  14502 Nov 28 17:50 filedialog.py
-rw-r--r-- 1 root root   6581 Nov 28 17:50 font.py
-rw-r--r-- 1 root root 162249 Nov 28 17:50 __init__.py
-rw-r--r-- 1 root root    148 Nov 28 17:50 __main__.py
-rw-r--r-- 1 root root   3701 Nov 28 17:50 messagebox.py
drwxr-xr-x 2 root root   4096 Nov 30 08:12 __pycache__
-rw-r--r-- 1 root root   1814 Nov 28 17:50 scrolledtext.py
-rw-r--r-- 1 root root  11424 Nov 28 17:50 simpledialog.py
-rw-r--r-- 1 root root  77014 Nov 28 17:50 tix.py
-rw-r--r-- 1 root root  55839 Nov 28 17:50 ttk.py

Ao mover o diretório, recebo:

$ sudo mv tkinter tkinter-backup
$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'tkinter'

Mais informações

$ which python3
/usr/bin/python3

$ apt list python3
Listing... Done
python3/xenial,now 3.5.1-3 amd64 [installed]
    
por Martin Thoma 08.05.2018 / 10:16

3 respostas

1

O pacote python3-tk tem suporte para as versões 3.6 e 3.7 do python, e não 3.5, que é seu padrão. Altere seu python padrão para uma versão suportada, se seu trabalho suportar isso. Caso contrário, se você realmente precisar da versão 3.5, será necessário rastrear os arquivos de suporte.

    
por ubfan1 08.05.2018 / 17:43
0

No meu caso, eu estava recebendo o mesmo erro que "ImportError: Nenhum módulo chamado '_tkinter'" para python3.5 apesar de fazer o seguinte:  - Instalando o python3-tk e o tkinter-dev  - O diretório Tkinter está disponível em /usr/lib/python3.5.

O erro observado foi do seguinte arquivo:

File "/usr/local/lib/python3.5/tkinter/init.py", line 35, in import _tkinter # If this fails your Python may not be configured for Tk

No entanto, quando eu simplesmente corri o python de / usr / bin como /usr/bin/python3.5 do terminal, funcionou para mim!

Resumindo, apenas certifique-se de que a versão do python sendo executada a partir do terminal tenha o tkinter instalado e configurado :)

Eu tenho o Ubuntu16.04 instalado no meu sistema, que vem com o padrão python2.7 e python3.5

    
por 01.01.2019 / 15:23
0

Já experimentou import Tkinter (com um T maiúsculo) no seu programa python? Isso fez isso por mim.

    
por 01.01.2019 / 15:28