pyglet.canvas.xlib.NoSuchDisplayException: невозможно подключиться к «None», происходит только в терминале VSCode - PullRequest
0 голосов
/ 30 марта 2020

Если я запускаю этот код в терминале VSCode

import pyglet
window = pyglet.window.Window(500, 500)

, я получаю

Traceback (most recent call last):
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/__init__.py", line 334, in __getattr__
    return getattr(self._module, name)
AttributeError: 'NoneType' object has no attribute 'Window'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/justin/Dropbox/jr/py/pyglet_games/pyglet_demo/displaytest.py", line 5, in <module>
    window = pyglet.window.Window(500, 500)
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/__init__.py", line 340, in __getattr__
    __import__(import_name)
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/window/__init__.py", line 1891, in <module>
    gl._create_shadow_window()
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/gl/__init__.py", line 220, in _create_shadow_window
    _shadow_window = Window(width=1, height=1, visible=False)
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/window/xlib/__init__.py", line 171, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/window/__init__.py", line 573, in __init__
    display = pyglet.canvas.get_display()
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/canvas/__init__.py", line 94, in get_display
    return Display()
  File "/home/justin/.local/lib/python3.8/site-packages/pyglet/canvas/xlib.py", line 123, in __init__
    raise NoSuchDisplayException('Cannot connect to "%s"' % name)
pyglet.canvas.xlib.NoSuchDisplayException: Cannot connect to "None"

Но если я запускаю его в командной строке, появляется окно, как и ожидалось. Это также работает, как и ожидалось, если я запустил его в Тонни, который я использую для обучения. Я убедился, что sys.version и sys.path идентичны при запуске в терминале или в VSCode.

Я искал решения этой проблемы, но в нескольких других существующих случаях это не тот случай, когда это работает, когда выполняется одним способом, а не другим. Большинство решений включают изменение настроек видеокарты или запуск сервера X11. Похоже, это не имеет отношения к делу, так как оно относится только к VSCode.

Спасибо.

...