Мой пользовательский макрос работает на моем компьютере, но падает на целевом компьютере - PullRequest
0 голосов
/ 11 июня 2019

Я сделал макрос, который включает в себя tesseract (для изображения ocr), pyautogui (для управления клавиатурой и мышью), openpyxl (для чтения и записи файла excelll), PIL (для захвата изображения), и я сделал этот код в файл .exe с помощью pyinstaller .

Он отлично работает на моем ноутбуке (64-разрядное устройство windows10, я кодировал его на этом ноутбуке), но происходит сбой приложения на целевом устройстве (32-разрядное устройство windows7).

страстно, код хорошо работает на 10 ~ 12 (случайных) макро циклах. Но после этого всегда происходит сбой.

Сначала это был сбой c_type, поэтому я исправил свой код, чтобы не использовать какие-либо вещи c_type, но он вылетает после тех же 10 ~ 12 циклов с другим сбоем python37.dll.

Я уверен, что Python и все библиотеки Python 32-битные.

Я не могу установить какую-либо новую программу, такую ​​как pycharm или python, на целевой компьютер из-за соображений безопасности.

Есть ли способ выяснить, в чем проблема?

1 Ответ

1 голос
/ 12 июня 2019

Я предлагаю вам несколько советов по созданию приложения с помощью Pyinstaller, который работает для большинства ОС и обрабатывает недостающие зависимости:

  1. Используйте виртуальную среду для создания своего приложения. Это даст вам лучшие результаты и позволит избежать любых конфликтов с текущей средой сборки Python. И всегда пытайтесь установить последнюю версию Pyinstaller в вашей среде.

  2. Найдите все зависимости вашего приложения и объедините столько, сколько вы можете, в конечный исполняемый файл в виде файлов DATA. Иногда Pyinstaller не может связать некоторые модули, поэтому вам нужно проверить их зависимости и вручную добавить их в ваш выходной исполняемый файл. Вы можете найти больше информации здесь .

  3. Если вы хотите, чтобы ваше приложение работало на более старых ОС, таких как Win7, попробуйте собрать его на компьютере с Win7. Это связано с тем, что есть некоторые зависимости, которые поставляются с новой ОС, такой как Win10, но они не существуют в Win7 по умолчанию.

  4. Используйте параметры отладки с Pyinstaller и вашим кодом для лучшего понимания вашей проблемы. Например, использование --debug=all во время сборки даст вам гораздо больше информации об ошибках. Вы можете найти больше информации в здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...