Flask .env文件在本地读取,但不在服务器上读取



当然,我的Flask应用程序可以在我的开发环境中工作,但不能在服务器上工作。以下是相关文件:

|- application
|---- __init__.py
|---- config.py
|---- ...
|- wsgi.py
|- .env

wsgi.py

from application import init_app
app = init_app()
if __name__ == "__main__":
app.run("host=0.0.0.0)

这是application/__init__.py

from flask import Flask
def init_app():
# Initialize the core application
app = Flask(__name__, instance_relative_config=True)
# Select and load config object dynamically based on the value of FLASK_ENV in .env
if app.config["ENV"] == "production":
app.config.from_object("application.config.ProductionConfig")
else:
app.config.from_object("application.config.DevelopmentConfig")
with app.app_context():
return app

最后.env

FLASK_APP=application
FLASK_ENV=development

我已经验证,在我的开发机器上,改变.env中FLASK_ENV的值如预期的那样工作。在服务器上,不管值是多少,它都会尝试作为生产运行。我错过了什么?

编辑添加这是一个Ubuntu 20服务器在AWS Lightsail上,如果这是重要的。

The files are only loaded by the flask command or calling run(). If you would like to load these files when running in production, you should call load_dotenv() manually.checkout this

可能添加flask.cli.load_dotenv()并确保python-dotenvpip install python-dotenv一起安装

最新更新