Задать вопрос
Ответы пользователя по тегу Python
  • Как составить план обучения и практики Python?

    @Proritsatel
    Привет. Вопрос задан более года назад. Расскажи как у тебя дела? Ты изучал python? Достиг результатов?
    Ответ написан
    Комментировать
  • Как отправить данные при нажатии кнопки в телеграм-боте python?

    @Proritsatel Автор вопроса
    Я переделал свой код как посоветовал коллега сверху. Добавил два потока и всё заработало
    opc = OpenOPC.client()
    servers = opc.servers()
    opc.connect("Owen.OPCNet.DA.1")
    print("Удачное подключение к " + servers[0])
    #--------------------------------------------------------------------------------------------------------#
    tagsValue = [];
    # Тр-ра Верх
    tagsValue.append(opc.list("COM4.TRM_202(adr=104)T_слой_Ср_р-ра.Оперативные параметры")[3])
    
    def send_mess():
        while True:
        print("-----------------------------------------------------------------------------------------")
        try:
            ############################################################
            # Проверка температур слоя реактора
            val = opc.read(tagsValue, update=1, include_error=True)
            if int(val[0][1]) > (react_temp + r_tmp_lim) or int(val[1][1]) > (react_temp + r_tmp_lim) or int(val[2][1]) > (react_temp + r_tmp_lim):
                try:
                    #print("here")
                    send_telegram("Слой реактора перегрет до {0:.2f} {1:.2f} {2:.2f} С".format(val[0][1], val[1][1], val[2][1]))
                except:
                    print("Включите VPN (test 1)")
            if int(val[0][1]) < (react_temp - r_tmp_lim) or int(val[1][1]) < (react_temp - r_tmp_lim) or int(val[2][1]) < (react_temp - r_tmp_lim):
        except:
            print("error read item")
        time.sleep(20)
        opc.close()
    #---------------------------#
    
    thrd_send_mess = threading.Thread(target=send_mess)
    thrd_send_mess.start()
    
    thrd_run_setting = threading.Thread(target=run_setting)
    thrd_run_setting.start()
    Ответ написан
    Комментировать
  • Программа .exe работает некорректно, после pyinstaller. Как найти проблему?

    @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...
    Ответ написан
    Комментировать