Python 烧瓶cli可以';找不到脚本manage.py

Python 烧瓶cli可以';找不到脚本manage.py,python,flask,flask-cli,Python,Flask,Flask Cli,我的烧瓶应用程序是一个名为app的软件包,位于/Users/gexinjie/Codes/MyProject/xinnjie_blog pwd /Users/gexinjie/Codes/MyProject/xinnjie_blog 文件树是这样的 xinnjie_blog ├── app | ├── __init__.py │   ├── config.py │   ├── exceptions.py │   ├── model.py │   ├── model_sqlalchemy.p

我的烧瓶应用程序是一个名为
app
的软件包,位于
/Users/gexinjie/Codes/MyProject/xinnjie_blog

pwd
/Users/gexinjie/Codes/MyProject/xinnjie_blog
文件树是这样的

xinnjie_blog
├── app
|   ├── __init__.py
│   ├── config.py
│   ├── exceptions.py
│   ├── model.py
│   ├── model_sqlalchemy.py
│   ├── static
│   ├── templates
│   ├── util.py
│   └── views
├── manage.py
我将其导出为
pathnpath
,因此
manage.py
可以导入
app

echo $PATHONPATH
/Users/gexinjie/Codes/MyProject/xinnjie_blog
并导出FLASK_应用程序

echo $FLASK_APP
manage.py
当前目录是
/Users/gexinjie/Codes/MyProject/xinnjie\u blog

pwd
/Users/gexinjie/Codes/MyProject/xinnjie_blog
这是
manage.py

import click
from app import create_app

app = create_app('development')

@app.cli.command()
def initdb():
    click.echo('Init the db...')
from flask import Flask
from .model_sqlalchemy import db

def create_app(config_name='default'):
    app = Flask(__name__)
    ...   # init
    return app
这是
app.\uuuuu init\uuuuuuuuuuuupy

import click
from app import create_app

app = create_app('development')

@app.cli.command()
def initdb():
    click.echo('Init the db...')
from flask import Flask
from .model_sqlalchemy import db

def create_app(config_name='default'):
    app = Flask(__name__)
    ...   # init
    return app
但如果执行
flask initdb
,则会出现以下错误:

Usage: flask [OPTIONS] COMMAND [ARGS]...
Error: No such command "initdb".
如果我执行
flask run
,我得到

Usage: flask run [OPTIONS]

 Error: The file/path provided (manage) does not appear to exist.  Please verify the path is correct.  If app is not on PYTHONPATH, ensure the extension is .py
为什么找不到manage.py?我怎样才能修好它。 (实际上,当
manage.py
本身有flask应用程序时,它工作得很好)


谢谢你

谢谢@Adam,在我卸载Anaconda之后,这个问题就解决了

因为我一直在Pycharm命令工具上测试
manage.py
,并且
flask
是由Anaconda(python版本3.6)安装的,所以它可能缺少一些扩展(通常我在终端上使用python3.5)。所以我认为问题发生在导入过程中

flask命令工具抱怨“找不到应用程序”,但真正的问题是导入错误。这太令人困惑了


“通用”解决方案:

因此,如果您像我一样遇到此类问题,我建议您首先检查应用程序的位置(尝试使用相对路径和绝对路径),当您不在正确的工作目录时,相对路径可能会导致定位问题。因此建议使用绝对路径

如果path的一切进展顺利,请确保安装了应用程序所需的所有软件包,并且可以导入这些软件包。如果您使用的是某种类型的虚拟环境或类似的东西(在我的例子中,我使用的是缺少一些flask扩展的python的另一个版本),则可能是导入错误导致
flask
抱怨


希望这能对您有所帮助。

应用程序是文件还是目录?你能发布它的全部内容吗?@NathanWailes
app
是一个目录。我已经发布了它的全部内容。你能发布你的
应用程序/\uuuu init\uuuuuuuuuuuy.py
的内容吗?@NathanWailes我发布了
\uuuuu init\uuuuuuuuuuuuuy.py
你是使用Linux作为你的操作系统还是Windows?如果你使用PyCharm,我会为每个项目创建一个虚拟环境,选择系统安装的解释器作为你的基础,然后使用里面的终端你可以做任何命令。