簡體   English   中英

使用Pmw時出現“ ImportError:沒有名為tkinter的模塊”

[英]“ImportError: No module named tkinter” when using Pmw

這是我的問題:在示例中,我正在運行代碼。 我在RaspberryPi上安裝了Python 2.7和3,但是已經檢查並再次檢查,並且我正在2.7中運行代碼。 我已經在2.7(而不是3)下安裝了Pmw 2.0.0,但是當我嘗試運行時,出現“ ImportError:No module named tkinter”錯誤。 我一直都在使用Tkinter,所以它通常可以正常工作,並且我進行了搜索以確認我肯定是在叫“ Tkinter”,而不是“ tkinter”,所以我認為Pmw一定是有問題的追溯似乎也表明了這一點(完整張貼在我的問題的底部)。 我一生無法找到Pmw尋找小寫的“ tkinter”的特定位置,而我對此如何解決一無所知。 我不急於切換平台-這是工作,因此,除非無法解決,否則我需要堅持使用Tkinter。 哦,我對Python很陌生,所以我很想發現這是一個簡單的問題,在這里的人可以很容易地發現。

進口系統; 打印sys.path給我:

['/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']

完整的回溯是:

Traceback (most recent call last):
  File "/home/pi/Desktop/LinkedMenusSample.py", line 151, in <module>
    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

也許我可以幫您解決錯誤。

這里有兩個想法:

1)您使用python 2.xx並安裝了python 3 pwm模塊(Tkinter從Python 2改名為tkinter到3)

2)您在導入之前執行以下操作,希望對您有所幫助:

#import tkinter
#Traceback (most recent call last):
#  File "<pyshell#11>", line 1, in <module>
#    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!

另一個解決方法如下:

try:
    import tkinter
except:
    import Tkinter as tkinter

這樣,您將始終可以使用模塊tkinter,並且根據Python版本,您的程序會加載tkinter或Tkinter。

我在CentO中遇到matplotlib.pyplot (python 2.7+)的相同問題。 我通過安裝tkinter解決了這個問題。 sudo yum install tkinter 希望這可以幫到你。

您導入了錯誤的模塊使用:import Tkinter

從python 3.4.0開始運行的重寫腳本

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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM