Сбой скомпилированных скриптов pyinstaller из-за отсутствия модулей
Я попытался скомпилировать программу Python на моем Mac, и все прошло хорошо. Затем я перешел в Ubuntu и даже не могу правильно скомпилировать hello world: я написал самый простой hello world:
print("hello world")
затем попытался скомпилировать его, используя:
pyinstaller --onefile hello.py
казалось, все было хорошо, пока я не попытался запустить его:
dist/hello
и получил следующую трассировку:
[2886] mod is NULL - structTraceback (most recent call last):
File "/usr/lib/python3.6/struct.py", line 13, in <module>
from _struct import *
ModuleNotFoundError: No module named '_struct'
[2886] mod is NULL - pyimod02_archiveTraceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/PyInstaller-3.4.dev0+g5f91905-py3.6.egg/PyInstaller/loader/pyimod02_archive.py", line 28, in <module>
import struct
ModuleNotFoundError: No module named 'struct'
[2886] mod is NULL - pyimod03_importersTraceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/PyInstaller-3.4.dev0+g5f91905-py3.6.egg/PyInstaller/loader/pyimod03_importers.py", line 24, in <module>
from pyimod02_archive import ArchiveReadError, ZlibArchiveReader
ModuleNotFoundError: No module named 'pyimod02_archive'
Traceback (most recent call last):
File "PyInstaller-3.4.dev0+g5f91905-py3.6.egg/PyInstaller/loader/pyiboot01_bootstrap.py", line 15, in <module>
ModuleNotFoundError: No module named 'pyimod03_importers'
[2886] Failed to execute script pyiboot01_bootstrap
Это кажется странным, так как я не импортирую какие-либо модули явно, но я последовал предложению добавить отсутствующие модули в hello.spec в hiddenimports. поэтому я добавил
hiddenimports=['_struct', 'struct', 'pyimod02_archive','pyimod03_importers']
и попытался скомпилировать с
pyinstaller --onefile hello.spec
но получил ту же ошибку, что и раньше, когда я пытался запустить исполняемый файл.
Что я делаю неправильно? Я использую pyinstaller 3.4.dev0+g5f91905 с Python 3.6.2 на Ubuntu 16.04.3