You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

伯克利PacMan项目Tkinter报错求助:无DISPLAY环境变量

解决PacMan运行时的Tkinter显示错误

看起来你是在WSL(Windows Subsystem for Linux)环境下运行代码的(从路径里的/mnt/c能判断出来),这个报错_tkinter.TclError: no display name and no $DISPLAY environment variable本质是WSL默认没有图形界面支持,Tkinter找不到输出的显示设备,给你几个可行的解决办法:

方法一:切换到Windows原生Python运行(最推荐)

你已经有C://Python27的Python 2.7环境,直接在PyCharm里切换解释器就行:

  • 打开PyCharm的File > Settings > Project: [你的项目名] > Python Interpreter
  • 点击右上角的齿轮图标,选择Add
  • 选择System Interpreter,找到C:\Python27\python.exe并确认
  • 重新运行pacman.py,Windows原生环境自带图形支持,Tkinter就能正常弹出游戏窗口了

可以先验证下这个Python的Tkinter是否正常:打开Windows命令行,输入C:\Python27\python.exe,然后执行import Tkinter; Tkinter._test(),如果弹出一个测试窗口,说明Tkinter没问题。

方法二:给WSL配置图形显示环境(如果非要用WSL)

如果想在WSL里运行,需要给WSL添加图形输出能力:

  1. 先在Windows上安装一个X Server工具,比如VcXsrv或者Xming,安装后启动时记得勾选Disable access control选项
  2. 打开WSL终端,设置DISPLAY环境变量:
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
    
  3. 如果你用PyCharm的WSL解释器,可以在解释器配置里添加这个环境变量:Settings > Python Interpreter > 选择WSL解释器 > Show All > 编辑 > Environment Variables,添加DISPLAY变量,值填上面命令输出的内容
  4. 重新运行代码,Tkinter就能把画面输出到X Server的窗口里了

方法三:用无图形文本模式运行

伯克利的PacMan代码支持纯文本模式,不需要Tkinter,运行时加上--textGraphics参数就行:

python pacman.py --textGraphics

这样游戏会在终端里以文本字符的形式显示状态,适合不需要可视化的测试场景。

内容的提问来源于stack exchange,提问作者Big Brain Algorithms

火山引擎 最新活动