Recientemente encontré un problema al instalar el python3.X más nuevo.
Lo instalé usando el Python-3.4.2.tar.xz
paquete de python.org
Después de la instalación. Intenté importar el tkinter
módulo pero no tuve éxito.
La salida de import tkinter
fue:
>>> importar tkinter Rastreo (llamadas recientes más última): Archivo "", línea 1, en Archivo "/usr/local/lib/python3.4/tkinter/__init__.py", línea 38, en import _tkinter # Si esto falla, es posible que Python no esté configurado para Tk ImportError: Ningún módulo llamado '_tkinter'
También probé las siguientes soluciones:
pero ninguno de ellos ayudó.
Mientras prueba estas soluciones, si nota que el error dice:
import _tkinter # Si esto falla, es posible que Python no esté configurado para Tk
Luego busqué en Google y encontréeste.
Leer elComprobando tu soporte de Tkintersección, Step 1
falló y quedó atrapado en esta línea
Si instala Tcl/Tk en las ubicaciones predeterminadas, simplemente volver a ejecutar "make" debería generar la extensión _tkinter.
Con respecto a la línea anterior, mi pregunta es: ¿
Dónde encontrar un archivo make para ejecutar un make
comando?
Y, ¿cómo configuro tkinter
para que Python3.4.2 lo acepte?
EDITAR:
Olvidé mencionarlo, pero import tkinter
funciona para la instalación predeterminada (Python-3.4.0) de Python en Ubuntu 14.04.1.
Respuesta1
Para compilar python3.4.2 desde el código fuente con el _tkinter
módulo, necesita instalar la siguiente dependencia de compilación:
sudo apt-get install tk8.6-dev
Luego, todo lo que tiene que hacer es ejecutar make
nuevamente para agregar _tkinter
soporte, ya que el setup.py
archivo detectará automáticamente los encabezados tk/tcl y creará el 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.
[...]
Ahora puedes importar tkinter en 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
>>>
Respuesta original:
A menos que realmente necesites python3.4.2, simplemente usaría la versión predeterminada de python3 en 14.04 (3.4.0)
Entonces todo lo que tienes que hacer es instalar los siguientes paquetes:
sudo apt-get install python3-tk tk
E inicie el intérprete de Python de esta manera:
/usr/bin/python3
De lo contrario, siempre obtendrá la versión que instaló /usr/local
(3.4.2).
La importación de tk en python3 debería funcionar ahora:
$ 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
>>>
Respuesta2
Si necesita tkinter solo para matplotlib, también puede usar un backend diferente, como Egg: import matplotlib as mpl mpl.use('Agg') import matplotlib.pyplot as plt
Ver más detallesaquí
Respuesta3
sudo apt-get install python3-tk tk
pyenv install 3.5.0
eso es todo
Respuesta4
Para que lo sepas, estoy usando Ubuntu 16.04. Agregando a la primera respuesta, haga estas cosas desde el archivo Python (después de la extracción):
./configure #(there will be a configure file)
make
make test
sudo make install
Había hecho estas cosas la primera vez pero todavía me mostraba estos errores:
IDLE can't import Tkinter. Your Python may not be configured for Tk.
mientras ejecuta python3 -m idlelib.idle
desde cmd.
Así que lo hice:
sudo apt-get install tk-dev
o puedes hacer
sudo apt-get install tk8.6-dev
luego otra vez
./configure
make
make test
sudo make install
Esto resolvió el problema ya que la próxima vez que ejecuté
python3 -m idlelib.idle
, abrió IDLE.