Проблема скрипта Python после сборки и упаковки

1

Я написал python script для сканирования Wi-Fi и отправки данных на сервер, я установил значение интервала, поэтому он продолжает сканировать и отправлять данные, он читается из файла config.txt, где я устанавливаю значение интервала для сканирование, я также добавляю yes/no в свой файл конфигурации, так что "нет" он будет сканировать только один раз, и если "да" будет сканировать в соответствии с интервальным уровнем,

мой код ниже

import time,.....

from threading import Event, Thread

class RepeatTimer(Thread):
    def __init__(self, interval, function, iterations=0, args=[], kwargs={}):
        Thread.__init__(self)
        self.interval = interval
        self.function = function
        self.iterations = iterations
        self.args = args
        self.kwargs = kwargs
        self.finished = Event()

    def run(self):
        count = 0
        while not self.finished.is_set() and (self.iterations <= 0 or count < self.iterations):
            self.finished.wait(self.interval)
            if not self.finished.is_set():
                self.function(*self.args, **self.kwargs)
                count += 1

    def cancel(self):
        self.finished.set()

    def scanWifi(self):
        #scanning process and sending data done here


obj = JW()
if status == "yes":
    t = RepeatTimer(int(intervalTime),obj.scanWifi)
    t.start()
else:
    obj.scanWifi()

после того, как я упакую свой код, его единственный запуск, когда я установил свой конфигурационный файл в значение "нет", где он сканирует только один раз, но когда я установил свой файл конфигурации в "да", прогресс вообще отсутствует, поэтому я обнаружил, что есть проблема с моим классом RepeatTimer (Timer) после сборки, но не знаю, как решить

может кто-нибудь мне помочь

спасибо

Теги:
package
build

1 ответ

0
Лучший ответ

Я думаю, проблема в условии цикла. Предположим, что is_set() возвращает False, вторая часть всегда False. Пока intervalTime неизвестно, я думаю, что он положительный (имеет смысл отрицательный интервал времени?), А count никогда не меньше self.iterations: они оба 0.

Но кода, который вы опубликовали, слишком мало, ему не дано знать, как именно работает.

    while not self.finished.is_set() and (self.iterations <= 0 or count < self.iterations):

Ещё вопросы

Сообщество Overcoder
Наверх
Меню