Python 烧瓶-无法加载配置文件

Python 烧瓶-无法加载配置文件,python,flask,Python,Flask,我在尝试加载自定义Flask开发对象时遇到问题 这是我的烧瓶应用程序结构/home/sincorchetes/Projects/Flask/my_app: ├── app.py ├── __init__.py ├── instance │   └── config.cfg ├── __pycache__ │   ├── app.cpython-37.pyc │   └── __init__.cpython-37.pyc └── static ├── css ├── images

我在尝试加载自定义Flask开发对象时遇到问题

这是我的烧瓶应用程序结构
/home/sincorchetes/Projects/Flask/my_app

├── app.py
├── __init__.py
├── instance
│   └── config.cfg
├── __pycache__
│   ├── app.cpython-37.pyc
│   └── __init__.cpython-37.pyc
└── static
    ├── css
    ├── images
    └── js
我已经在app.py中设置了这个

from flask import Flask 
import os

app = Flask(__name__,instance_path=os.getcwd() + '/instance/') 
app.config.from_pyfile('config.cfg')
app.config.from_object('config.DevelopmentConfig')


@app.route('/') 
def hello_world(): 
    return 'Hello to the World of Flask!' 

if __name__ == '__main__': 
    app.run() 
我运行:

cd /home/sincorchetes/Projects/flask/my_app
export FLASK_APP=app.py
flask run
我得到:

 * Serving Flask app "app.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Traceback (most recent call last):
  File "/home/sincorchetes/Projects/flask/bin/flask", line 8, in <module>
    sys.exit(main())
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 966, in main
    cli.main(prog_name="python -m flask" if as_module else None)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 848, in run_command
    app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 305, in __init__
    self._load_unlocked()
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 388, in load_app
    app = locate_app(self, import_name, name)
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/home/sincorchetes/Projects/flask/projectio/app.py", line 7, in <module>
    app.config.from_pyfile('config.cfg')
  File "/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/config.py", line 131, in from_pyfile
    with open(filename, mode="rb") as config_file:
FileNotFoundError: [Errno 2] Unable to load configuration file (No such file or directory): '/home/sincorchetes/Projects/flask/my_app/config.cfg'
*服务烧瓶应用程序“app.py”
*环境:生产
警告:这是一个开发服务器。不要在生产部署中使用它。
改用生产WSGI服务器。
*调试模式:关闭
回溯(最近一次呼叫最后一次):
文件“/home/sincorchetes/Projects/flask/bin/flask”,第8行,in
sys.exit(main())
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site-packages/flask/cli.py”,第966行,主文件
cli.main(prog_name=“python-m flask”如果为as_模块,则为无)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/cli.py”,第586行,主目录
返回超级(烧瓶组,自身)。主(*args,**kwargs)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/click/core.py”,第717行,在main中
rv=自调用(ctx)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/click/core.py”,调用中的第1137行
返回进程结果(sub_ctx.command.invoke(sub_ctx))
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/click/core.py”,调用中的第956行
返回ctx.invoke(self.callback,**ctx.params)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/click/core.py”,调用中的第555行
返回回调(*args,**kwargs)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/click/decorators.py”,第64行,在新函数中
返回ctx.invoke(f,obj,*args,**kwargs)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/click/core.py”,调用中的第555行
返回回调(*args,**kwargs)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/cli.py”,第848行,在run_命令中
app=DispatchingApp(info.load\u app,使用\u eager\u loading=eager\u loading)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/cli.py”,第305行,在__
自身。_加载_解锁()
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/cli.py”,第330行,在“加载”中
self.\u app=rv=self.loader()
load_应用程序中的文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/cli.py”,第388行
应用程序=定位应用程序(自我、导入名称、名称)
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/cli.py”,第240行,在locate_应用程序中
__导入(模块名称)
文件“/home/sincorchetes/Projects/flask/projecto/app.py”,第7行,在
app.config.from_pyfile('config.cfg'))
文件“/home/sincorchetes/Projects/flask/lib64/python3.7/site packages/flask/config.py”,第131行,from_pyfile
打开(filename,mode=“rb”)作为配置文件:
FileNotFoundError:[Errno 2]无法加载配置文件(没有此类文件或目录):“/home/sincorchetes/Projects/flask/my_app/config.cfg”
为什么它需要应用程序的“根”目录,并避免在文件头中设置
实例路径?
您可以使用:

app = Flask(__name__)
在不指定实例路径的情况下,会为您计算:

如果未提供instance_path参数,则使用以下默认位置:

  • 已卸载的模块:

    /myapp.py
    /instance
    
  • 已卸载的程序包:

    /myapp
        /__init__.py
    /instance
    
  • 已安装的模块或包:

    $PREFIX/lib/python2.X/site-packages/myapp
    $PREFIX/var/myapp-instance
    
    $PREFIX是Python安装的前缀。这可以是/usr,也可以是指向virtualenv的路径。您可以打印sys.prefix的值以查看前缀设置为什么


来自:“请记住,提供此路径时必须是绝对路径。”。是的,
os.getcwd()+'/instance/'
给出=
/home/sincorchetes/Projects/flask/my_app/instance
,如果我没有指定
实例路径
。我遇到了同样的错误:
[Errno 2]无法加载配置文件(没有这样的文件或目录):/home/sincorchetes/Projects/flask/projecto/config.cfg'
这是Python shell--------------------------->
键入“帮助”、“版权”、“信用证”或“许可证”以获取更多信息。>>>导入系统>>>打印(系统前缀)/home/sincorchetes/Projects/flask