Я пытаюсь создать отдельный exe-файл из нескольких файлов Python и дополнительных файлов (изображение, таблица Excel) - PullRequest
0 голосов
/ 21 мая 2018

Я довольно новичок в программировании на Python, поэтому я мог упустить что-то совершенно очевидное здесь.

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

Итак, моя программа разделена на основной файл с именем "main.py" и 3 дополнительных функции, которые я импортирую вmain из других файлов python в той же папкеОн использует одну электронную таблицу Excel и одно изображение .ico для логотипа в tkinter.

Моя первая попытка использовала только команду:

pyinstaller main.py

Он генерирует исполняемый файл, но при выполнениион просто открывает черное окно, и больше ничего не происходит.

Я читал документацию по pyinstaller и подумал, что мне может понадобиться добавить и другие файлы python и дополнительные файлы.Для Excel и изображения, которое мне не удалось понять, как мне нужно написать его, я попытался добавить следующее в качестве параметров, но это вернуло мне ошибку

--add-data <logo.ico> --add-data <WAE_SW_NameCnvtn.xlsx>

Без них мне удалосьчтобы снова сгенерировать exe-файл с помощью следующей команды:

pyinstaller --windowed --name=NameCnvtn main.py read_description.py read_quantity.py word_finder.py

Это, кажется, добавило еще несколько файлов в папку dist, и когда я запускаю exe-файл вместо черного окна, он говорит «сбой»выполнить скрипт main ", который, как я предполагаю, ссылается на мой файл main.py.

В случае, если это поможет, я разработал его с использованием python 3.6.4, и он использует tkinter и openpyxl.

Спасибо за помощь.

1 Ответ

0 голосов
/ 22 мая 2018

Мне удалось успешно запустить exe сегодня.Я вручную добавил в spec-файл excel и ico под строкой данных, скомпилировал его снова, и после этого он работал правильно.Вот файл спецификации на случай, если у кого-то возникнет та же проблема, что и у меня.

# -*- mode: python -*-

block_cipher = None


a = Analysis(['main.py', 'read_description.py', 'read_quantity.py', 'word_finder.py'],
             pathex=['C:\\Users\\j.berjano\\Desktop\\app_test'],
             binaries=[],
             datas=[('WAE_SW_NameCnvtn.xlsx','.'),('logo.ico','.')],
             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,
          exclude_binaries=True,
          name='NameCnvtn',
          debug=False,
          strip=False,
          upx=True,
          console=False,
		  icon='logo.ico')
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='NameCnvtn')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...