gpt4 book ai didi

仅当我在 apache2 或 nginx 中部署 flask 应用程序时,python 中的 sqlite3 "OperationalError: unable to open database file"

转载 作者:行者123 更新时间:2023-12-03 16:40:43 30 4
gpt4 key购买 nike

我在 flask 中制作了一个使用 sqlite3 数据库的应用程序。当我使用 Flask 的内部测试服务器运行该应用程序时,它可以完美运行。但是,当我尝试使用 apache2 或 gunicorn+nginx 部署我的应用程序时,我使用的任何服务器的日志都会显示“OperationalError:无法打开数据库文件”。

这是导致错误的完整文件:

import sqlite3

__all__ = ['Database']

class Database(object):

def __init__(self, name):
self._name = name

def _execute(self, command, args=None):
connection = sqlite3.connect(self._name)
cursor = connection.cursor()

if args is None:
out = cursor.execute(command).fetchall()
else:
out = cursor.execute(command, args).fetchall()

connection.commit()
connection.close()
return out
connection = sqlite3.connect(self._name)是实际触发错误的行,我不知道为什么。我试过替换 self._name用硬编码字符串到数据库的路径无济于事。我还确保数据库文件具有适当的读写权限。

有谁知道我怎么能弄清楚发生了什么?

最佳答案

编辑 确保启动进程的用户对 具有写入权限父文件夹 sqlite 也是如此。

有关如何部署的更多详细信息会很好。您是否使用 fabric 进行部署? ?

如果这样做,请检查您用于部署文件的用户是否具有权限。在fabric 中,即存储在env.user 中的用户。使用同一个用户启动 gunicorn 服务器也有权限。

你可以关注这个example用于 flask 应用程序的简单部署脚本。

关于仅当我在 apache2 或 nginx 中部署 flask 应用程序时,python 中的 sqlite3 "OperationalError: unable to open database file",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28567498/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com