Ошибка типа: объект ‘NoneType’ не может быть вызван при запуске exe, созданного с помощью pyinstaller

#python #windows #opengl #pyinstaller

#питон #Windows #opengl #pyinstaller

Вопрос:

При попытке запустить exe-файл, который я сделал с помощью pyinstaller, он не работает при импорте OpenGL с этой обратной связью:

 (env) C:UsersmemyProjectgt;.distmyProjectmyProject.exe Traceback (most recent call last):  File "main.py", line 6, in lt;modulegt;  from igtools import IG  File "lt;frozen importlib._bootstrapgt;", line 983, in _find_and_load  File "lt;frozen importlib._bootstrapgt;", line 967, in _find_and_load_unlocked  File "lt;frozen importlib._bootstrapgt;", line 677, in _load_unlocked  File "PyInstallerloaderpyimod03_importers.py", line 476, in exec_module  File "OpenGLGL__init__.py", line 3, in lt;modulegt;  File "lt;frozen importlib._bootstrapgt;", line 983, in _find_and_load  File "lt;frozen importlib._bootstrapgt;", line 967, in _find_and_load_unlocked  File "lt;frozen importlib._bootstrapgt;", line 677, in _load_unlocked  File "PyInstallerloaderpyimod03_importers.py", line 476, in exec_module  File "OpenGLerror.py", line 12, in lt;modulegt;  File "lt;frozen importlib._bootstrapgt;", line 983, in _find_and_load  File "lt;frozen importlib._bootstrapgt;", line 967, in _find_and_load_unlocked  File "lt;frozen importlib._bootstrapgt;", line 677, in _load_unlocked  File "PyInstallerloaderpyimod03_importers.py", line 476, in exec_module  File "OpenGLplatform__init__.py", line 36, in lt;modulegt;  File "OpenGLplatform__init__.py", line 30, in _load TypeError: 'NoneType' object is not callable [38272] Failed to execute script 'main' due to unhandled exception!  

Ответ №1:

Так что я не совсем уверен, в чем именно заключалась проблема. Похоже, это как-то связано с крючками pyinstaller, которые я не совсем понимаю, но я заставил его работать с этой конкретной комбинацией версий выпуска:

 pyinstaller==4.0 pyinstaller-hooks-contrib==2020.9 PyOpenGL==3.1.5  

Может быть, это будет полезно, если кто-нибудь еще столкнется с этим.

Комментарии:

1. Ваша версия PyInstaller слишком старая, пожалуйста, обновите ее до последней (4.7).

2. 4.7-это версия, которую я изначально использовал iirc. Возможно, мне следует попытаться воспроизвести эту ошибку с меньшим количеством кода и отправить проблему в pyinstaller.