#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
?