gpt4 book ai didi

python - 无法在作为包组织的应用程序中加载实例配置

转载 作者:行者123 更新时间:2023-11-28 18:32:17 36 4
gpt4 key购买 nike

__init__.py 中,我尝试从相对于实例文件夹的 Python 文件加载配置。这会引发错误 Unable to load configuration file (No such file or directory): '/home/ais-flask/ais/instance/config.py',这是错误的,因为实例文件夹应该在包裹旁边,而不是在里面,而我的是。我使用 setup.py develop 在开发模式下安装我的包。我使用 python __init__.py 运行应用程序。为什么这不起作用?

ais-flask/
ais/
__init__.py
instance/
config.py
setup.py
from flask import Flask

app = Flask(__name__, instance_relative_config=True)
app.config.from_pyfile('config.py')

最佳答案

因为您的应用程序是一个包,而不是单个模块,所以您需要使用脚本来运行它。调用 python __init__.py 会扰乱 Python 的路径/包检测。这在 docs 中有描述。 .

ais-flask/run.py:

from ais import app
app.run(debug=True)
python run.py

考虑使用脚本运行器,例如 Flask-Script 或 Flask-Cli。这将允许您创建一个运行程序来处理多个命令和选项。

由于您要安装包(这是一个很好的设计模式),您可以使用入口点而不是自己编写脚本。

from flask import Flask
from flask_script import Manager

app = Flask(__name__, instance_relative_config=True)
app.config.from_pyfile('config.py')
manager = Manager(app)

setup.py 中,将以下内容添加到 setup 调用中:

entry_points = {'console_scripts': ['flask=ais:manager.run']}

这会在 virtualenv 中向您的路径添加一个 flask 命令。

flask runserver

关于python - 无法在作为包组织的应用程序中加载实例配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35802583/

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