Форум сайта python.su
В скрипте определена функция выхода из программы
import sys ... ... def closeApplication(): s = input('\nPress <Enter> for close Application') sys.exit(0) ... ...
pyinstaller.exe --onefile KoboShelf.py
C:\Stuff>type KoboShelf.spec
# -*- mode: python -*-
block_cipher = None
a = Analysis(['KoboShelf.py'],
pathex=['C:\\Stuff'],
binaries=None,
datas=None,
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='KoboShelf',
debug=False,
strip=False,
upx=True,
console=True )
C:\Stuff>
C:\Stuff\dist>KoboShelf.exe
Can't find Kobo eReader.
Check mount Reader or use command line switches
Press <Enter> for close Application
Traceback (most recent call last):
File "KoboShelf.py", line 198, in <module>
File "KoboShelf.py", line 157, in main
File "KoboShelf.py", line 91, in detectUSBDrive
File "KoboShelf.py", line 34, in closeApplication
NameError: name 'exit' is not defined
Failed to execute script KoboShelf
Отредактировано AxaRu (Сен. 11, 2016 11:04:24)
Офлайн
1) я бы рекомендовал попробовать cx_freeze
2) если попробовать sys.exit(1) поведение изменится ?
Офлайн
2) если попробовать sys.exit(1) поведение изменится ?Нет. Все то же самое.
Офлайн
Проблема в том что данный случай не гуглится. А это может быть связанно с исключительно вашим окружением и кодом, ну и самим фактом что pyinstaller штука в целом достаточно специфичная и имеется некая вероятность проблем связанных с его использованием.
В качестве решения проблемы можете явно сделать то что делает данная функция,а именно
raise SystemExit()
Офлайн
AxaRu
Подскажите пожалуйста, что не так?
JOHN_16А основное что не так - не надо паковать в exe. Гораздо проще воспроизвести на целевой машине часть вашего окружениа необходимого для работы приложения чем бросаться на ветряные мельницы.
pyinstaller штука в целом достаточно специфичная
Офлайн
Спасибо всем, кто откликнулся.
У меня такое ощущение, что pyinstaller плюет на строку
#!/usr/bin/python3
Офлайн
AxaRu:) pyqt отлично ставится на винду и без таких жертв.
Попробую сделать кросскомпиляцию библиотек Python под Linux и соберу C-шный код под windows с помощью mingw.
Офлайн
doza_andПри чем тут PyQt?pyqt отлично ставится на винду и без таких жертв.
Офлайн