2015-12-16 4 views
2

Мой сын пытается выполнить небольшую программу, используя pythonAnywhere.PythonAnywhere: ошибка Tkinter.py при попытке использования модуля easygui

import random, easygui 
secret = random.randint(1,99) 
guess = 0 
tries = 0 
easygui.msgbox ("AHOY! I'm the Dread Pirate Roberts, and I have a secret!\n" 
"It is a number from 1 to 99. I'll give ye 6 tries.") 
while guess != secret and tries < 6: 
    guess = easygui.integerbox ("What's yer guess, matey?") 
    if not guess: break 
    if guess < secret: 
     easygui.msgbox (str(guess) + "is too low, ye scurvy dog!") 
    elif guess > secret: 
     easygui.msgbox (str(guess) + "is too high, landlubber!") 
    tries = tries + 1 
if guess == secret: 
    easygui.msgbox ("Avast! Ye got it! Found me secret, ye did!") 
else: 
    easygui.msgbox ("No more guesses! The number was" + str(secret)) 

При выполнении кода из консоли Баша, выкинута ошибка последующая:

File "NumGuess.py", line 6, in <module> 
    It is a number from 1 to 99. I'll give ye 6 tries.""") 
    File "/home/016646/.local/lib/python2.7/site- packages/easygui/boxes/derived_boxes.py", line 216, in msgbox 
    cancel_choice=ok_button) 
    File "/home/016646/.local/lib/python2.7/site-packages/easygui/boxes/base_boxes.py", line 66, in buttonbox 
    boxRoot = Tk() 
    File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1767, in __init__ 
    self.tk = _tkinter.create(screenName, baseName, className,  interactive, wantobjects, useTk, sync, use) 
_tkinter.TclError: no display name and no $DISPLAY environment variable 

модуля easygui был установлен с помощью установки пипа --user easygui, как это было предложено на форумах PythonAnywhere в.

Поскольку PA - это веб-среда, я не уверен, есть ли какой-то дополнительный нюанс. Есть несколько предложений в Интернете относительно этой ошибки, когда ssh'ing в систему. Однако доступ к ПА осуществляется через веб-логин, поэтому это может не распространяться.

ответ

5

Tkinter (и, следовательно, easygui) требует фактического экрана для рисования. Ошибка говорит вам, что он не может найти экран. Tkinter просто не предназначен для работы в веб-среде.

Дополнительная информация: this pythonanywhere help page on tkinter and other gui libraries.