Еще раз, у меня есть проблемы с PyInstaller-скомпилированные исполняемые файлы не работают так же, как сделать питон сценарии ...Gdk.Screen.get_default() не работает после PyInstaller
мне нужно прочитать разрешение экрана системы в моей программе, поэтому я добавил эту простую функцию для этого:
# Get screen size for Linux
from gi.repository.Gdk import Screen
def GetResolution():
screenvar = Screen.get_default()
width = screenvar.get_width()
height = screenvar.get_height()
return [width, height]
При запуске с Python он отлично работает.
Однако исполняемый файл с PyInstaller разбился. Сначала я подумал, что это проблема с библиотечными крючками - раньше это видели. Это было не так, однако - библиотека и ее функции работают, но оказывается, что «Screen.get_default()» возвращает NULL.
Так что это поведение, описанное в ГДК документации:
gdk_screen_get_default()
Возвращает: GdkScreen, или NULL, если нет отображения по умолчанию.
Для меня он успешно возвращает объект GdkScreen при запуске с Python, но возвращает NULL в исполняемом файле PyInstaller.
Итак, почему не отображается «стандартная индикация», обнаруженная этой функцией в исполняемом файле, и как заставить ее работать?
PS: У меня есть аналогичный EXE, работающий с PyInstaller, отлично работающий в Windows, но он использует другую библиотеку для чтения данных экрана.