【问题标题】:unable to open database file on a hosting service pythonanywhere无法在托管服务 pythonanywhere 上打开数据库文件
【发布时间】:2021-02-03 09:53:05
【问题描述】:

我想在 pythonanywhere 上部署我的项目。 Error.log 说服务器或机器无法打开我的数据库。在我的本地机器上一切正常。我在 YouTube 上观看了 Pretty Printed 的视频

这就是我在 app.py 中初始化的方式。这是我从error.log得到的

db_session.global_init("db/data.sqlite")

db_session 中的这个:

def global_init(db_file):
global __factory

if __factory:
    return

if not db_file or not db_file.strip():
    raise Exception("Необходимо указать файл базы данных.")

conn_str = f'sqlite:///{db_file.strip()}?check_same_thread=False'
print(f"Подключение к базе данных по адресу {conn_str}")

engine = sa.create_engine(conn_str, echo=False)
__factory = orm.sessionmaker(bind=engine)

from . import __all_models
SqlAlchemyBase.metadata.create_all(engine)

def create_session() -> Session:
    global __factory
    return __factory()

最后一件事是我的 wsgi.py:

import sys
path = '/home/r1chter/Chicken-beta'
if path not in sys.path:
    sys.path.append(path)
import os
from dotenv import load_dotenv
project_folder = os.path.expanduser(path)
load_dotenv(os.path.join(project_folder, '.env'))
import app # noqa
application = app.app()

【问题讨论】:

  • 尝试调试 db 文件的路径 -- 可能相对路径在这种情况下令人困惑?
  • Yooo 兄弟,它成功了,感谢上帝和你
  • 很高兴我能帮上忙。只需将此添加为您问题的答案,以便您可以将问题标记为已解决。

标签: flask-sqlalchemy web-deployment pythonanywhere


【解决方案1】:

PythonAnywhere 上的此类错误通常是由于提供了相对路径而不是绝对路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多