Не удалось использовать pyinstaller для создания exe-файла из двух python скриптов, которые подключаются через функцию spx wexpect - PullRequest
0 голосов
/ 12 апреля 2020

Я здесь в значительной степени нуб, я начал кодировать две недели go и, столкнувшись с проблемой, я очень много искал, но с моим ограниченным пониманием возможностей программирования я не думаю, что смогу решить это так Я оставляю здесь вопрос.

здесь часть main.py, которая имеет проблемы, main.py использует pyqt5, этот def type_in(self) связан с кнопкой.

def type_in(self):
    name_keyword = self.textbox.text()
    xlsWork = wexpect.spawn(sys.executable, ['child.py'])
    xlsWork.expect("Name :")
    xlsWork.sendline(name_keyword)
    xlsWork.wait()

Child.py - управляющий скрипт Excel, в котором есть функция ввода.

у двух скриптов нет проблем, если я запускаю на python3, и я проверил его один за другим с помощью pyinstaller, они работали нормально соответственно.

Однако, если я пытаюсь запустить функцию, нажав кнопку на main.exe, она выдаст мне ошибки

Вот методы, которые я попробовал

  1. Только что упакованный файл main.py в exe

ошибка:

\wexpect\host.py", line 375, in startChild
_, _, self.console_pid, __otid = win32process.CreateProcess(
pywintypes.error: (2, 'CreateProcess', 'The system cannot find the file specified.')
pyinstaller --add-data "child.py;." main.py

ошибка: не удалось выполнить скрипт pyiboot01_ bootstrap

Сначала запаковал child.py в exe и изменил код main.py с (sys.executable, ['child.py']) на (child.exe)

ошибка: сказано " не отвечает "и сам выключается, никаких других сообщений об ошибках я не могу получить

скачал файл wexpect-master, потому что люди, у которых были одни и те же проблемы с первым и использующие оба модуля (wexpect, pyinstaller), сказали, что pyinstaller не может принести явные python исполняемые файлы, поэтому на официальной странице модуля wexpect я дал указание загрузить его и использовать pyinstaller, чтобы заставить wexpect.spe c выполнить файл exe и поместить его рядом с папкой main.exe

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

также я проверил Лучший способ вызывать сценарии подпроцесса в Python exe , так как я думаю, что у него есть проблемы при обращении дочерней обработки к исполняемому файлу, но я Я заблудился здесь, пожалуйста, помогите мне

ожидаемый результат будет exe-файл, который может быть использован на любых других компьютерах, которые даже не имеют python

Заранее спасибо :)

1 Ответ

0 голосов
/ 13 апреля 2020

Тем не менее, использование pyinstaller с wexpect не является задачей новичка, я пытаюсь помочь.

Я думаю, мы можем игнорировать методы ваших 1-3, потому что 4-й был решен это.

Я предлагаю пойти по шагам, описанным на этой вики-странице. Пожалуйста, убедитесь, что вы можете использовать pyinstaller с wexpect в простом приложении. (без этого обработчика Excel.)

Если вы уверены, что ваш скрипт работает изначально (как скрипт python), но не работает с pyinstaller (как исполняемый файл), откройте новую проблему здесь .

...