Flask应用无法找到实例的config.py

时间:2019-01-26 13:49:26

标签: flask path

这是我的Flask应用的目录层次结构,后跟当前的FlaskApp/app/__init__.py代码:

FlaskApp目录树:

/FlaskApp
│   config.py
│   run.py
├───app
│   │   db.py
│   │   forms.py
│   │   models.py
│   │   views.py
│   │   __init__.py
│   ├───static\
│   └───templates\
├───instance
│       config.py

__ init __。py:

from flask import Flask

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

使用app.config.from_pyfile('config.py')从实例文件夹加载配置变量会引发以下错误:

  

FileNotFoundError:[错误2]无法加载配置文件(无此类文件或目录):'C:\ .. \ FlaskApp \ app \ instance \ config.py'

我必须使用unipath来解决当前问题,方法是将instance_path=Path(os.getcwd()).parent + "\instance"添加到变量app中来解决此问题。

这样做很好地解决了这个问题,但我相信有一种更好/更干净的方法(无需更改当前目录层次结构)。有人可以与此有关吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试使用os.path.abspath(__file__)来获取当前文件的绝对路径。

然后与'../instance'

一起加入
my_instance_location = os.path.join(os.path.abspath(__file__),'../instance')
app = Flask(__name__,
    instance_path=my_instance_location,
    instance_relative_config=True,
)