Преобразование веб-приложения flask в автономное исполняемое настольное приложение

#python #flask #flask-sqlalchemy #pyinstaller

#python #flask #flask-sqlalchemy #pyinstaller

Вопрос:

Я пытаюсь экспортировать веб-приложение flask в автономный исполняемый файл для запуска на localhost с помощью Pyinstaller, у меня возникают проблемы с упаковкой файла базы данных.

Структура моего проекта:

 /project
    /app
        __init__.py    #    This is where I call the app.run() method
        routes.py
        forms.py
        config.py

        /database
            models.py
            data.db    #    sqlalchemy db file

        /files    #    Folder that stores temporary files
        /templates    #    HTML files

    /backend
        __init__.py
        module1.py
        module2.py

  

В / project / app / я запускаю Pyinstaller с помощью команды:

 pyinstaller -F --add-data "templates;templates" --add-data "database;database" __init__.py
  

После выполнения приведенной выше команды попытка запустить созданный exe-файл завершается неудачей со следующей ошибкой на консоли:

 sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file
  

в config.py У меня есть класс с именем Config, в котором я определяю URI базы данных как таковой:

 SQLALCHEMY_DATABASE_URI = 'sqlite:///'   os.path.join('database', 'data.db')
  

Я полагаю, что проблема заключается в фактической упаковке, потому что запуск приложения в pycharm или из командной строки работает без проблем.

Был бы очень признателен за помощь в решении этой проблемы, заранее большое спасибо!

Комментарии:

1. При условии, что вы не используете —onefile, pyinstaller должен создать каталог (с именем «dist» IIRC). Содержит ли оно вашу базу данных?

2. Этот параметр -F является сокращением от --onefile , смогли ли вы заставить это работать, используя этот параметр, или вам пришлось использовать -D или --onedir ?