Задать вопрос
@Proritsatel

Программа .exe работает некорректно, после pyinstaller. Как найти проблему?

Здравствуйте!
Я написал программу в pyCharm и она отлично работает если её запускать в pyCharm.
Я решил сделать .exe файл при помощи pyinstaller, py2exe, auto_py_to_exe, cx_Freeze, на выходе имею .exe-файл файл который начинает правильно отрабатывать, но в итоге программа заходит в блок except. Также пробовал использовать другие библиотеки для создания .exe, cx_Freeze, auto-py-to-exe
Python 3.6 32-bit
Также у меня создался файл *.pyc, и если его запустить, то отрабатывает всё хорошо.
Основной код больше, скину саму суть:
Подключаемся к ОРС:
import OpenOPC

opc = OpenOPC.client()
servers = opc.servers()
print(servers)
try:
    opc.connect(servers[0])
except:
    print("не удалось подключиться к ОРС - серверу")

while:
    try:
       #обрабатываем полученнные значения
    except:
        print("error read item")
        opc.close()

Как я понимаю проблема в виртуальной среде, но в cmd.exe я установил все необходимые библиотеки как в проекте pycharm.
Вот так отрабатывает скрипт OpcSender.py из консоли или из pyCharm
5ee4cf446397e452835910.png
Вот так отрабатывает OpcSender.exe
5ee4d00c712e2569966194.png
Что посоветуете? заранее спасибо.
  • Вопрос задан
  • 3435 просмотров
Подписаться 1 Средний 14 комментариев
Решения вопроса 1
@Proritsatel Автор вопроса
В общем как удалось решить прблему.
Я создал новый проект в PyCharm и поместил туда не все свои 200 строк кода, а только необходимый минимум для проверки программы
import OpenOPC

opc = OpenOPC.client()
servers = opc.servers()
print(servers)
try:
    opc.connect(servers[0])
except:
    print("не удалось подключиться к ОРС - серверу")

while:
    try:
       #обрабатываем полученнные значения
    except:
        print("error read item")
        opc.close()

собрал программу с помощью pyinstaller, и тут у меня консоль стала аварийно закрываться игнорируя блок except. В итоге я заснял видео на телефон, и в замедленной съёмке я увидел ошибку
дословно я её не приведу но проблема была с пакетом win32timezone.

Решение проблемы:
pyinstaller --hiddenimport win32timezone -F your_file.py
Помогла мне в этом статья https://stackoverflow.com/questions/33212949/impor...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hekkaaa
@hekkaaa
C#/.NET Developer
Привет, можно скрины ошибок?
Потому как описание этого хорошо, но в Вашем случае лучше скрины дать.
Первое что в голову приходит пока не вижу ошибки - а система у Вас x64 вероятнее всего. Может быть проблема кроется в разной битности Python и OS? Потому как я не припоминанию чтобы в pyinstaller были ключи для битности (может и есть стоит препроверить).
Попробуй поставить x64 Python. Хотя это и кажется бредом. Ну и естественно скрины в студию с ошибками.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы