问题描述
我有以下最小的测试程序。
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 机器 - 也许您的设置不同。