【问题标题】:Flask init-db no such commandFlask init-db 没有这样的命令
【发布时间】:2019-10-15 07:43:25
【问题描述】:

从昨天开始,我阅读了很多关于著名错误的主题:

"没有这样的命令 init-db"

所以,我按照这里的教程进行操作:https://flask.palletsprojects.com/en/1.1.x/tutorial/database/

(我在 Debian 9.6 下)

我执行以下操作:

export FLASK_APP=webApp
export FLASK_ENV=development
flask init-db

然后我尝试了:

python3 -m flask init-db

我也试过了:

export FLASK_APP=webApp.py

但我仍然有同样的错误信息。

这是我的项目树:

instance/
webApp/
├── auth.py
├── babel.cfg
├── dashboard.py
├── db.py
├── __init__.py
├── pdf.py
├── __pycache__
│   ├── auth.cpython-35.pyc
│   ├── db.cpython-35.pyc
│   ├── __init__.cpython-35.pyc
│   ├── pdf.cpython-35.pyc
│   └── ws.cpython-35.pyc
├── schema.sql
├── static

我没有看到我错过了什么。

【问题讨论】:

  • 请透露db.py的内容。
  • 另外,您是否在某处导入db.py 文件?您需要这样做才能通过Click注册命令。
  • 在您使用的教程中通过from . import db 完成。

标签: python flask


【解决方案1】:

我发现了问题。
当我启动flask --help 时,我看到一个模块的导入错误。我刚刚通过pip安装了那个模块,没问题。

【讨论】:

  • 安装什么?
  • 对我来说是我在运行命令之前忘记激活 virtualenv
  • 也许你必须先使用 pip 安装 Flask Migrate。使用 pip 命令:“pip install flask-migrate”
【解决方案2】:

首先,请务必激活您的虚拟环境。 如果您使用的是新终端,请运行以下命令:

export FLASK_APP="flaskr"
export FLASK_ENV=development

运行烧瓶应用

flask run

然后运行 ​​DB 命令

flask init_db

您应该会看到 Database Initialized 消息。

【讨论】:

    【解决方案3】:

    在我的情况下,我必须使用的命令不同,从烧瓶 --help 输出中可以看出:

    命令: 初始化数据库 路线 显示应用程序的路线。 运行运行开发服务器。 shell 在应用程序上下文中运行一个 shell。

    所以出于某种原因我不得不使用flask init.db。

    【讨论】:

      【解决方案4】:

      为了运行init-db命令,首先需要确保你在flaskr包之外(如果不确定,使用pwd命令)并且与venv文件夹在同一级别,然后设置终端上的以下两个:

      $env:FLASK_APP = "flaskr"
      $env:FLASK_ENV = "development"
      

      然后运行:

      flask init-db

      输出:Initialized the database.

      如果您按照教程并按照他们所说的执行命令,则无需安装任何额外的软件包。

      【讨论】:

        【解决方案5】:

        也许你可以简单地尝试使用 flask init_db

        注意:- 使用下划线 _ 而不是连字符 -

        通过检查是否在实例文件夹中创建sqlite文件来交叉验证

        It works like in the image

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题。在执行flask --help 或只是flask 后,我意识到问题是由导入错误引起的,并且我的 FLASK_APP 中有错字。

          纠正它使一切恢复正常。

          【讨论】:

            【解决方案7】:

            我只是遇到了同样的问题,即使它上次工作。 我只是运行烧瓶,然后停止它并尝试初始化数据库并且它工作。

            【讨论】:

              【解决方案8】:

              您必须正确设置 FLASK_APP。它必须与应用工厂所在的目录名称相匹配。在烧瓶中,这是在flaskr/__init__.py。工厂名为 create_app()。

              所以如果你重命名flaskr/,你必须设置FLASK_APP来匹配。

              参考:https://flask.palletsprojects.com/en/1.1.x/patterns/appfactories/

              【讨论】:

                【解决方案9】:

                这对我有用:

                flask init-db
                

                我从命令生成的文档中得到了这个想法:

                flask --help
                

                【讨论】:

                • 这与现有答案有何不同? SO 平台的优势在于对现有答案进行投票,而不是提交重复的答案。如果您有一些独特、有见地的新内容要添加到您的帖子中,请进行编辑。重复的“答案”可能会导致投票失败,甚至被删除。
                猜你喜欢
                • 2020-02-07
                • 1970-01-01
                • 2020-09-17
                • 1970-01-01
                • 1970-01-01
                • 2011-01-21
                • 2020-03-20
                • 2013-06-30
                • 1970-01-01
                相关资源
                最近更新 更多