使用 gunicorn 运行时 f 字符串的语法无效?

问题描述

我有这个烧瓶 API:

from flask import Flask,request
from flask_sqlalchemy import sqlAlchemy
from datetime import datetime,timedelta

import MysqL.connector
import environ
env = environ.Env(
    # set casting,default value
    DEBUG=(bool,False)
)
environ.Env.read_env()


# import environment
DEBUG = env('DEBUG')
DB_PWD = env('DB_PWD')
FH_KEY = env('FH_KEY')

稍后在文件中,我有以下几行:

app.config["sqlALCHEMY_DATABASE_URI"] = f'MysqL://my-user:{DB_PWD}@localhost/my-db'
# several lines later
print(f'Message not routed: {data}')

当我使用命令 flask run ... 运行时,它可以工作。但是当我尝试使用 gunicorn ... api_daemon:app 运行它时,我收到以下错误

File "/home/my-user/super_cool_app/api_daemon.py",line 35
    app.config["sqlALCHEMY_DATABASE_URI"] = f"MysqL://my-db-user:{DB_PWD}@localhost/my-db"
                                                                                                 ^
SyntaxError: invalid Syntax

如果我用一个简单的字符串替换 {DB_PWD}错误会向下移动到下一个 f 字符串:

File "/home/my-user/super_cool_app/api_daemon.py",line 89
    print(f'Message not routed: {data}')
                                      ^
SyntaxError: invalid Syntax

flask 应用程序使用 flask run 运行但使用 gunicorn ... api_daemon:app 运行时会中断,是否有原因?

树莓派 4

Debian(实际上是 Raspbian Buster)

蟒蛇 3.7.3

独角兽 19.9.0

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)