PyInstaller: невозможно выполнить эту операцию для незарегистрированного типа загрузчика - PullRequest
0 голосов
/ 13 июля 2020

Я пытался превратить свою тестовую игру в exe, и сборка прошла нормально, но когда я запустил исполняемый файл. Это дает эту ошибку:

pygame 2.0.0.dev10 (SDL 2.0.12, python 3.8.3)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
  File "main.py", line 7, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "c:\python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "scene_titleScreen.py", line 63, in <module>
  File "asset_generator.py", line 13, in generateRoundedButtonSurf
  File "site-packages\pygame\sysfont.py", line 370, in SysFont
  File "site-packages\pygame\sysfont.py", line 293, in font_constructor
  File "site-packages\pygame\pkgdata.py", line 50, in getResource
  File "site-packages\pkg_resources\__init__.py", line 1134, in resource_exists
  File "site-packages\pkg_resources\__init__.py", line 1404, in has_resource
  File "site-packages\pkg_resources\__init__.py", line 1472, in _has
NotImplementedError: Can't perform this operation for unregistered loader type
[9904] Failed to execute script main

Когда я запускаю скрипт, он работает нормально. И что странно, pyinstaller отлично работает с играми с одним скриптом. Или, может быть, это из-за перекрестного импорта, который я сделал с моей игрой?

My Project Folder
├─ main.py (Imports scene_titleScreen.py and scene_world.py)
├─ render_engine.py (Only imports pygame)
├─ asset_generator.py (Only imports pygame)
├─ scene_titleScreen.py (Imports render_engine.py and asset_generator.py)
└─ scene_world.py (Imports render_engine.py and asset_generator.py)

Что еще нужно знать, чтобы решить эту проблему?

...