Recentemente, encontrei um problema ao instalar o python3.X mais recente.
Instalei usando o Python-3.4.2.tar.xz
pacote do python.org
After, a instalação tentei importar o tkinter
módulo mas não tive sucesso.
A saída de import tkinter
foi:
>>> importar tkinter Traceback (última chamada mais recente): Arquivo "", linha 1, em Arquivo "/usr/local/lib/python3.4/tkinter/__init__.py", linha 38, em import _tkinter # Se isso falhar, seu Python pode não estar configurado para Tk ImportError: Nenhum módulo chamado '_tkinter'
Eu também tentei as seguintes soluções:
mas nenhum deles ajudou.
Ao tentar essas soluções, notei que o erro diz:
import _tkinter # Se isso falhar, seu Python pode não estar configurado para Tk
então pesquisei sobre isso no Google e descobriesse.
Lendo oVerificando seu suporte Tkinterseção, Step 1
falhou e ficou preso nesta linha
Se você instalar o Tcl/Tk nos locais padrão, simplesmente executar novamente "make" deverá construir a extensão _tkinter.
Em relação à linha acima, minha pergunta é:
Onde encontrar um arquivo make para executar um make
comando?
E como configuro tkinter
para que Python3.4.2 aceite?
EDITAR:
Esqueci de mencionar mas import tkinter
funciona para a instalação padrão (Python-3.4.0) do Python no Ubuntu 14.04.1
Responder1
Para construir python3.4.2 a partir do código-fonte com o _tkinter
módulo, você precisa instalar a seguinte dependência de construção:
sudo apt-get install tk8.6-dev
Então tudo que você precisa fazer é executar make
novamente para adicionar _tkinter
suporte, pois o setup.py
arquivo 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 instalada /usr/local
(3.4.2).
A importação de 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
>>>
Responder2
Se você precisar do tkinter apenas para matplotlib, também poderá usar um back-end diferente, como Egg: import matplotlib as mpl mpl.use('Agg') import matplotlib.pyplot as plt
Veja mais detalhesaqui
Responder3
sudo apt-get install python3-tk tk
pyenv install 3.5.0
é isso
Responder4
Só para você saber, estou usando o Ubuntu 16.04. Adicionando à primeira resposta, faça o seguinte no arquivo python (após a extração):
./configure #(there will be a configure file)
make
make test
sudo make install
Eu tinha feito essas coisas pela primeira vez, mas ainda assim estava me mostrando estes erros:
IDLE can't import Tkinter. Your Python may not be configured for Tk.
durante a execução 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 de novo
./configure
make
make test
sudo make install
Isso resolveu o problema, pois na próxima vez que executei
python3 -m idlelib.idle
, ele abriu o IDLE.