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