“ImportError: No hay un módulo llamado tkinter” cuando se usa Pmw

Aquí está mi problema: estoy ejecutando el código en este ejemplo. Tengo Python 2.7 y 3 instalados en mi RaspberryPi, pero lo he comprobado y he comprobado dos veces, y estoy ejecutando el código en 2.7. He instalado Pmw 2.0.0 en 2.7, no en 3, pero cuando bash ejecutarlo, aparece el error “ImportError: No hay módulo llamado tkinter“. Uso Tkinter todo el tiempo, por lo que generalmente funciona bien, y he realizado una búsqueda para verificar que definitivamente estoy llamando “Tkinter”, no “tkinter”, así que creo que tiene que ser un problema con Pmw, que También parece ser indicado por el rastreo (publicado en su totalidad al final de mi pregunta). No puedo, por mi vida, encontrar un lugar específico donde Pmw esté buscando “tkinter” en minúsculas, y no sé cómo solucionarlo. No estoy ansioso por cambiar de plataforma; esto es para trabajar, así que, a menos que esto no se pueda arreglar, necesito seguir con Tkinter. Oh, y soy bastante nuevo en Python, así que me encantaría descubrir que es un problema simple que alguien puede detectar fácilmente.

import sys; imprimir sys.path me da:

['/home/pi/Desktop', '/home/pi', '/usr/bin', '/usr/local/lib/python2.7/dist-packages/distribute-0.6.28-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7'] 

El rastreo completo es:

 Traceback (most recent call last): File "/home/pi/Desktop/LinkedMenusSample.py", line 151, in  Pmw.initialise(root) File "/usr/local/lib/python2.7/dist-packages/Pmw/Pmw_2_0_0/lib/PmwLoader.py", line 131, in __getattr__ self._initialise() File "/usr/local/lib/python2.7/dist-packages/Pmw/Pmw_2_0_0/lib/PmwLoader.py", line 89, in _initialise raise ImportError(msg) ImportError: No module named tkinter 

Tal vez pueda ayudarte en cómo eliminar el error.

Aquí hay dos pensamientos:

1) utiliza python 2.xx y ha instalado el módulo pwm de python 3 (se cambió el nombre de Tkinter a tkinter de Python 2 a 3)

2) haces lo siguiente antes de la importación y espero que ayude:

 #import tkinter #Traceback (most recent call last): # File "", line 1, in  # import tkinter #ImportError: No module named tkinter import sys, Tkinter sys.modules['tkinter'] = Tkinter # put the module where python looks first for modules #import tkinter # now works! 

Otra solución sería la siguiente:

 try: import tkinter except: import Tkinter as tkinter 

De esta manera, siempre tendría el módulo tkinter disponible y, dependiendo de la versión de Python, su progtwig carga tkinter o Tkinter.

Me enfrentaba al mismo problema con matplotlib.pyplot (python 2.7+) en mis CentOs. Resolví el problema simplemente instalando el tkinter. sudo yum install tkinter . Espero que esto le pueda ayudar.

ha importado el uso incorrecto del módulo: importar Tkinter

script reescrito que se ejecuta en Python 3.4.0 en adelante

 def add(): print ("Enter the two numbers to Add") A=int(input("Enter A: ")) B=int(input("Enter B: ")) return A + B def sub(): print ("Enter the two numbers to Subtract") A=int(input("Enter A: ")) B=int(input("Enter B: ")) return A - B def mul(): print ("Enter the two numbers to Multiply") A=int(input("Enter A: ")) B=int(input("Enter B: ")) return A * B def div(): print ("Enter the two number to Divide") A=float(input("Enter A: ")) B=float(input("Enter B: ")) return A / B print ("1: ADDITION") print ("2: SUBTRACTION") print ("3: MULTIPLICATION") print ("4: DIVISION") print ("0: QUIT") while True: CHOICE = int(input("ENTER THE CORRESPONDING NUMBER FOR CALCULATION ")) if CHOICE == 1: print ('ADDING TWO NUMBERS:') print (add()) elif CHOICE == 2: print ('SUBTRACTING TWO NUMBERS') print (sub()) elif CHOICE == 3: print ('MULTIPLYING TWO NUMBERS') print (mul()) elif CHOICE == 4: print ("DIVIDEING TWO NUMBERS") print (div()) elif CHOICE == 0: exit() else: print ("The value Enter value from 1-4")