无法初始化 Pygame 显示,但只能在通过 tox 运行时

问题描述

我有以下最小的测试程序。

import pygame
pygame.init()
print(pygame.display.list_modes())

如果我尝试通过 Tox 命令运行此程序,则会收到错误消息:

Traceback (most recent call last):
  File "test.py",line 3,in <module>
    print(pygame.display.list_modes())
pygame.error: video system not initialized

但是,如果我激活 tox 命令运行的虚拟环境并手动运行相同的程序,它会按预期工作。我希望两个执行环境都相同。我做错了什么?

解决方法

为了解决这个问题,我需要添加一个

passenv = DISPLAY

到我的[testenv]

如上面的评论所述,tox 执行 isolated 构建,并且不会传入 ENVIRONMENT 变量,除非您将它们列入白名单。

我对 pygame 不是很熟悉,我只是快速浏览了一下源代码。

这适用于我的 Ubuntu 机器 - 也许您的设置不同。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...