【发布时间】:2021-02-15 18:04:27
【问题描述】:
我有以下最小的测试程序。
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 命令运行的虚拟环境并手动运行相同的程序,它会按预期工作。我希望两个执行环境是相同的。我做错了什么?
【问题讨论】:
-
能否提供完整的应用程序代码和测试?甚至可能是一个公共的 GitHub 存储库?我有一个想法,我想先在我的系统上尝试一下
-
virtualenv 和 tox 之间的一个区别是 tox 提供所谓的隔离构建。它也不使用例如全局环境变量,除非您将它们列入白名单。
-
@J.G.你只需要复制上面的三行程序(另存为
test.py)和this tox.ini file。将这两个放在一个空目录中,然后尝试运行tox -e app、source .tox/py38/bin/activate,然后运行python3 test.py。 -
对,还有一个 setup.py,这样 tox 就可以构建项目了。就是这样做的。我可以重现错误。
-
我在 tox.ini 中设置了 skipsdist 标志,至少现在是这样,所以我不需要 setup.py。
标签: python pygame python-3.8 tox