我想知道如何在开发阶段更改Flask应用程序的名称。
以烧瓶超级教程为参考,我成功地安装了一个"Hello“应用程序。
教程中的摘要:
pipenv作为我的Python虚拟环境管理器(而不是venv)astronomer.py。现在,我希望在现有应用程序的基础上进行构建,并根据我的需求定制代码;从我在.flaskenv文件中定义为FLASK_APP env的应用程序名称开始。因此,我已经将根级Python脚本的名称从astronomer.py (在本教程中)更新为galielo.py (供我使用)。在更改FLASK_APP的相应值并通过$ pipenv run flask run重新启动烧瓶服务器之后,应用程序崩溃时会出现以下错误:
$ 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".调试
FLASK_APP的值之后,我得到了astronomer.py的旧值。这解释了为什么应用程序没有启动。但是,我不明白为什么会发生这种事?$ pipenv run flask run --eager-loading仍然,应用程序开始时当然没有相同的错误信息。通过从虚拟env中取消env var FLASK_APP并重新启动烧瓶服务器,我能够手动解决这个问题。我很想知道为什么这个应用程序没有在初始化时加载文件.flaskenv,以及是否有一种自动化的方法来做到这一点?
发布于 2019-10-09 07:49:47
对于Pipenv,我认为环境变量的情况有点不同。作为根据文件,有一个加载.env文件的内置机制:
如果项目中存在.env文件,则$ pipenv和$ pipenv将自动加载它。
因此,我想您应该将文件从.flaskenv重命名为.env,然后安全地删除python-dotenv依赖项。
https://stackoverflow.com/questions/58299142
复制相似问题