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

Взаимодействие с базой данных при сборке файла exe?

Доброго дня,
помогите пожалуйста разобраться,
был файл с расширением pyw, графический интерфейс на tkinter
плюс база данных sql
собрал это в exe файл с помощью pyinstaller
в итоге при запуске программы выдает такую ошибку,
как можно это исправить?683b1448d50e8235119816.jpeg
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
izma, не нужны танцы с бубнами...

Сделал тестовую программку на Tk и sqlite3. Всё, ожидаемо, собирается.
1. До БД должен быть абсолютный путь, используем:
def get_db_path():
    if getattr(sys, 'frozen', False):
        # Если запущен из .exe, использовать путь рядом с исполняемым файлом
        return os.path.join(os.path.dirname(sys.executable), 'database.db')
    else:
        # При обычном запуске — рядом с .py файлом
        return os.path.join(os.path.dirname(__file__), 'database.db')

2. Собираем: pyinstaller --onefile --windowed app.py
3. Кладём базу рядом с exe-ником.

З.Ы. Если база нужна только в режиме чтения можно её тоже интегрировать в exe.
pyinstaller --onefile --add-data "database.db;." --windowed app.py
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Дунадан - северный странник. Злой, но очень добрый
Ну а что непонятного - значит БД не создается вообще или создается неправильно
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽