Почему PyInstaller не может упаковать eventlet? - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь сделать приложение-компаньон для элиты опасным для помощи в исследованиях. Кости кода не работают, и теперь я пытаюсь упаковать то, что по сути представляет собой приложение flask / socketio / flaskwebui, в один .exe

Когда я запускаю следующую команду:

pipenv run pyinstaller EDScout-WebUI\WebUI.py

Кажется, он работает успешно. Однако, когда я пытаюсь запустить полученный .exe, я получаю:

C:\Users\Jon\Documents\EDScout\dist>WebUI
Traceback (most recent call last):
  File "EDScout-WebUI\WebUI.py", line 7, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "NavRouteForwarder.py", line 2, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\eventlet\__init__.py", line 10, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\eventlet\convenience.py", line 4, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\eventlet\greenpool.py", line 4, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\eventlet\queue.py", line 49, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\eventlet\event.py", line 3, in <module>
  File "c:\users\jon\.virtualenvs\edscout-yes4e1p6\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\eventlet\hubs\__init__.py", line 19, in <module>
  File "site-packages\eventlet\hubs\__init__.py", line 19, in <genexpr>
  File "importlib\__init__.py", line 127, in import_module
ModuleNotFoundError: No module named 'eventlet.hubs.epolls'
[20936] Failed to execute script WebUI

Полный исходный код доступен здесь: https://github.com/joncage/ed-scout/tree/0004-TurnIntoApp

1 Ответ

1 голос
/ 11 августа 2020

Оказалось, что мне нужно следующее:

pipenv run pyinstaller ^
    --hidden-import=eventlet.hubs.epolls ^
    --hidden-import=eventlet.hubs.kqueue ^
    --hidden-import=eventlet.hubs.selects ^

, так как следующего было недостаточно:

pipenv run pyinstaller ^
    --hidden-import=eventlet
...