首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在开发过程中重命名Flask WSGI应用程序?

如何在开发过程中重命名Flask WSGI应用程序?
EN

Stack Overflow用户
提问于 2019-10-09 07:33:39
回答 1查看 1.6K关注 0票数 0

我想知道如何在开发阶段更改Flask应用程序的名称。

烧瓶超级教程为参考,我成功地安装了一个"Hello“应用程序。

教程中的摘要:

  1. 使用pipenv作为我的Python虚拟环境管理器(而不是venv)
  2. 这个应用程序的名称是astronomer.py

现在,我希望在现有应用程序的基础上进行构建,并根据我的需求定制代码;从我在.flaskenv文件中定义为FLASK_APP env的应用程序名称开始。因此,我已经将根级Python脚本的名称从astronomer.py (在本教程中)更新为galielo.py (供我使用)。在更改FLASK_APP的相应值并通过$ pipenv run flask run重新启动烧瓶服务器之后,应用程序崩溃时会出现以下错误:

代码语言:javascript
复制
$ pipenv run flask run                                                                                                                                                                                                             [12:29:33]
 * Serving Flask app "astronomer.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 302-012-958
127.0.0.1 - - [09/Oct/2019 12:29:57] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
ModuleNotFoundError: No module named 'astronomer'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 338, in __call__
    self._flush_bg_loading_exception()
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 326, in _flush_bg_loading_exception
    reraise(*exc_info)
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 314, in _load_app
    self._load_unlocked()
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 388, in load_app
    app = locate_app(self, import_name, name)
  File "/Users/kshitij10496/.local/share/virtualenvs/galileo-iQPdbs28/lib/python3.7/site-packages/flask/cli.py", line 250, in locate_app
    raise NoAppException('Could not import "{name}".'.format(name=module_name))
flask.cli.NoAppException: Could not import "astronomer".

调试

  • 在登录到虚拟env并检查env var FLASK_APP的值之后,我得到了astronomer.py的旧值。这解释了为什么应用程序没有启动。但是,我不明白为什么会发生这种事?
  • 我甚至尝试使用“急切加载”的应用程序使用:$ pipenv run flask run --eager-loading仍然,应用程序开始时当然没有相同的错误信息。

通过从虚拟env中取消env var FLASK_APP并重新启动烧瓶服务器,我能够手动解决这个问题。我很想知道为什么这个应用程序没有在初始化时加载文件.flaskenv,以及是否有一种自动化的方法来做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-10-09 07:49:47

对于Pipenv,我认为环境变量的情况有点不同。作为根据文件,有一个加载.env文件的内置机制:

如果项目中存在.env文件,则$ pipenv和$ pipenv将自动加载它。

因此,我想您应该将文件从.flaskenv重命名为.env,然后安全地删除python-dotenv依赖项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58299142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档