Как хранить пользовательскую информацию в .exe файле написанном на python

Имеется код, который обращается к некому API и получает оттуда информацию. Приворотил я к этому всему GUI (flet) и систему ввода client_id и secret_id (подобно авторизации). Разумеется, пришлось додумывать как хранить эти данные, чтобы постоянно их не вводить. Сначала пробовал простой json, потом базу данных прикрутил. Всё работало и так, и так, до того момента, как я преобразовывал .py в .exe.

При запуске .exe файла программа не создаёт базу данных в папке исполняемого файла. Поэтому она и не запоминает введённые данные.

Подскажите, как хранить эти данные так, чтобы после компиляции в .exe файл база данных создавалась, а данные запоминались?

Буду благодарен любой помощи и заранее спасибо.

UPD. База данных должна создаваться при запуске программы. В .py это работает, в .exe нет.

BASE_DIR = os.path.dirname(os.path.realpath(__file__))
def db_connect():

    if os.path.exists(os.path.join(BASE_DIR, 'sqlite.db')):
        conn = sqlite3.connect(os.path.join(BASE_DIR, 'sqlite.db'))
        cur = conn.cursor()
        return conn, cur
    else:
        conn = sqlite3.connect(os.path.join(BASE_DIR, 'sqlite.db'))
        cur = conn.cursor()
        cur.execute("""CREATE TABLE IF NOT EXISTS auth(
        name TEXT NOT NULL PRIMARY KEY,
        value TEXT NOT NULL,
        time INT);
        """)
        cur.execute("""CREATE TABLE IF NOT EXISTS orders(
        id INT NOT NULL);
        """)
        conn.commit()
        return conn, cur
.....
def main():
    cn, c = db_connect()
    .....
if __name__ == '__main__':
    ft.app(target=main)

Ответы (3 шт):

Автор решения: IvanProkshin

В самом exe-файле - никак. Используйте сторонние файлы, например, ini или json, или переменные окружения.

→ Ссылка
Автор решения: Fufi

Я компилировал однажды в exe приложение на flet с базой данных, и все спокойно работало. Вот доказательство - https://youtu.be/JBOF31QqbFY

Может, у вас проблема в пути к базе данных?

→ Ссылка
Автор решения: dussyaka

Нашёл решение тут.

Вместо

BASE_DIR = os.path.dirname(os.path.realpath(__file__))

написал

if getattr(sys, 'frozen', False):
    BASE_DIR = os.path.dirname(sys.executable)
elif __file__:
    BASE_DIR = os.path.dirname(__file__)
→ Ссылка