configure o tkinter para python3.4.2

5

Recentemente encontrei um problema ao instalar o mais novo python3.X.
Instalou-o usando o pacote Python-3.4.2.tar.xz de python.org Depois da instalação, tentei importar o módulo tkinter , mas não consegui.

A saída de import tkinter foi:

>>> import tkinter
Traceback (most recent call last):
  File "", line 1, in 
  File "/usr/local/lib/python3.4/tkinter/__init__.py", line 38, in 
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named '_tkinter'

Eu também tentei seguir soluções:

mas nenhum deles ajudou.
Ao tentar estas soluções, se percebeu que o erro diz:

import _tkinter # If this fails your Python may not be configured for Tk

então eu pesquisei sobre isso e encontrei este .
Lendo a seção Verificando seu suporte Tkinter , o Step 1 falhou e ficou preso nessa linha

If you install Tcl/Tk in the default locations, simply rerunning "make" should build the _tkinter extension.

Em relação à linha acima, minha pergunta é:
Onde encontrar um arquivo make para executar um comando make ?

E como eu configuro o tkinter para que o Python3.4.2 o aceite?

EDITAR:

Esqueci de mencionar, mas o import tkinter funciona para a instalação padrão (Python-3.4.0) do Python no Ubuntu 14.04.1

    
por devGeek 30.10.2014 / 07:06

4 respostas

8

Para construir o python3.4.2 a partir do código-fonte com o módulo _tkinter , você precisa instalar a seguinte dependência de compilação:

sudo apt-get install tk8.6-dev

Em seguida, tudo o que você precisa fazer é executar make novamente para adicionar _tkinter support, pois o arquivo setup.py detectará automaticamente os cabeçalhos tk / tcl e criará o módulo:

~/Downloads/Python-3.4.2$ make
running build
running build_ext
building '_tkinter' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I/usr/include/tcl8.6 -I/usr/X11/include -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/sylvain/Downloads/Python-3.4.2/Include -I/home/sylvain/Downloads/Python-3.4.2 -c /home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.c -o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.o
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I/usr/include/tcl8.6 -I/usr/X11/include -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/sylvain/Downloads/Python-3.4.2/Include -I/home/sylvain/Downloads/Python-3.4.2 -c /home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.c -o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.o
gcc -pthread -shared build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.o -L/usr/X11/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -ltk8.6 -ltcl8.6 -lX11 -o build/lib.linux-x86_64-3.4/_tkinter.cpython-34m.so

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm              
_lzma                 _sqlite3                                 
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
[...]

Agora você pode importar o tkinter em python3.4.2:

~/Downloads/Python-3.4.2$ ./python 
Python 3.4.2 (default, Oct 30 2014, 11:34:17) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 

Resposta original:

A menos que você realmente precise do python3.4.2, eu usaria apenas a versão padrão do python3 em 14.04 ( 3.4.0 )

Então tudo que você precisa fazer é instalar os seguintes pacotes:

sudo apt-get install python3-tk tk

E inicie o interpretador python desta forma:

/usr/bin/python3

Caso contrário, você sempre obterá a versão que instalou em /usr/local (3.4.2).

Importar o tk em python3 deve funcionar agora:

$ python3
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 
    
por Sylvain Pineau 30.10.2014 / 09:17
0

Se você precisar do tkinter apenas para o matplotlib, também poderá usar um backend diferente, como Egg: import matplotlib as mpl mpl.use ('Agg') import matplotlib.pyplot como plt

Veja mais detalhes aqui

    
por Noam Peled 23.01.2016 / 01:31
0
sudo apt-get install python3-tk tk  

pyenv install 3.5.0  

é isso

    
por user610433 23.10.2016 / 10:57
0

Só para você saber, estou usando o Ubuntu 16.04. Adicionando a primeira resposta, faça estas coisas do arquivo python (após a extração):

./configure #(there will be a configure file)
make
make test
sudo make install

Eu fiz essas coisas na primeira vez, mas ainda assim estava me mostrando esses erros:

IDLE can't import Tkinter.  Your Python may not be configured for Tk.

ao executar python3 -m idlelib.idle do cmd.

Então eu fiz:

sudo apt-get install tk-dev

ou você pode fazer

sudo apt-get install tk8.6-dev

então novamente

./configure
make
make test
sudo make install

Isso resolveu o problema como na próxima vez que eu corri python3 -m idlelib.idle , abriu o IDLE.

    
por Pushkaraj Joshi 17.11.2016 / 06:15