Как заставить pyinstaller exe брать актуальные данные с py файла

Рейтинг: 0Ответов: 1Опубликовано: 11.02.2023

У меня есть main.exe скомпилированный с помощью pyinstaller.

в файле main.py(main.exe) есть такие строки:

import config

while memu_counter < config.memu_restart_counter:
    ...

Так же, есть файл config.py, в котором находиться переменная:

memu_restart_counter = 20

Я хочу в дальнейшем изменять memu_restart_counter, но exe запоминает только одно значение перед сборкой. Как можно сделать, чтобы можно было каждый раз обновлять данные?

Ответы

▲ 0Принят

Вы можете решить эту проблему, создав отдельный файл, который будет хранить данные конфигурации. Вместо того, чтобы хранить данные конфигурации в самом main.py, вы можете хранить их в файле, например, config.txt и прочитать их в main.py каждый раз при запуске программы. Например config.txt:

memu_restart_counter = 20

main.py

def read_config():
    with open("config.txt", "r") as f:
        data = f.readlines()
    config = {}
    for line in data:
        key, value = line.strip().split("=")
        config[key.strip()] = int(value.strip())
    return config

config = read_config()
memu_counter = 0
while memu_counter < config["memu_restart_counter"]:
    # do something
    memu_counter += 1

Теперь, когда вы измените memu_restart_counter в config.txt, изменения будут видны в main.py при каждом запуске.