PythonAnywhere:尝试使用 easygui 模块时出现 Tkinter.py 错误
Posted
技术标签:
【中文标题】PythonAnywhere:尝试使用 easygui 模块时出现 Tkinter.py 错误【英文标题】:PythonAnywhere: Tkinter.py error when trying to use easygui module 【发布时间】:2016-03-22 00:35:28 【问题描述】:我儿子正在尝试使用 pythonAnywhere 执行一个小程序。
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))
从 bash 控制台运行代码时,会抛出以下错误:
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
按照 PythonAnywhere 论坛上的建议,使用 pip install --user easygui 安装了模块 easygui。
由于 PA 是基于 Web 的环境,我不确定是否有一些额外的细微差别。在 ssh 进入系统时,网上有一些关于此错误的建议。但是,PA 是通过 Web 登录访问的,因此可能不适用。
【问题讨论】:
【参考方案1】:Tkinter(因此,easygui)需要一个实际的屏幕来绘制。该错误告诉您它找不到屏幕。 Tkinter 根本不是为在基于 Web 的环境中运行而设计的。
更多信息请访问this pythonanywhere help page on tkinter and other gui libraries。
【讨论】:
以上是关于PythonAnywhere:尝试使用 easygui 模块时出现 Tkinter.py 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PythonAnywhere 上使用 ffmpeg?
PYTHONANYWHERE ...我在尝试访问 /admin/default/ 时开始收到“403 FORBIDDEN”错误
在 Pythonanywhere 上使用 Cloudinary 上传的图像得到 [错误 111]
PythonAnywhere `python3.6 -m venv test` 导致错误