Я пытаюсь превратить свою программу Python в приложение с помощью pyinstaller. Это работает безупречно в Windows, но не работает в Mac OS (Big Sur). Я установил pyinstaller версии 5.0dev0.
Я запустил виртуальную среду и запустил pyinstaller в терминале со следующим. (В конечном итоге я хочу запустить его как --onefile и без отладки):
(klusterbox) thomasweeks@Thomass-MacBook-Pro kb_install % pyinstaller -w -D -i kb_sub/kb_images/kb_icon1.icns --log-level DEBUG > out.txt klusterbox.py
Когда я нажимаю на приложение или открываю его в терминале, значок на мгновение появляется в доке и исчезает. Больше ничего не происходит. Когда я загружаю исполняемый файл Unix в каталог dist, терминал открывается и дает мне следующее:
Last login: Fri Jan 15 22:24:13 on ttys002
thomasweeks@Thomass-MacBook-Pro ~ % /Users/thomasweeks/klusterbox/kb_install/dist/klusterbox/klusterbox ; exit;
Traceback (most recent call last):
File "klusterbox.py", line 58, in <module>
ModuleNotFoundError: No module named 'PIL'
[24871] Failed to execute script klusterbox
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
Это строка 58 в программе Python:
# Pillow Library
from PIL import ImageTk, Image # Pillow Library
Модуль Pillow устанавливается в виртуальном окружении:
(klusterbox) thomasweeks@Thomass-MacBook-Pro klusterbox % pip3 list
Package Version
------------------ --------
...
openpyxl 3.0.3
pdfminer.six 20181108
Pillow 8.0.1
pip 20.3.1
...
Мой файл .spec выглядит так:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['klusterbox.py'],
pathex=['/Users/thomasweeks/klusterbox/kb_install'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='klusterbox',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=False , icon='kb_sub/kb_images/kb_icon1.icns')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='klusterbox')
app = BUNDLE(coll,
name='klusterbox.app',
icon='kb_sub/kb_images/kb_icon1.icns',
bundle_identifier=None)
У меня есть еще необработанные данные, если вам нужно их увидеть.
.exe
? - person Devansh Garg   schedule 16.01.2021pillow
в вашем файле спецификации, напримерhiddenimports=['pillow']
- person AST   schedule 18.01.2021