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,我会为每个项目创建一个虚拟环境,选择系统安装的解释器作为你的基础,然后使用里面的终端你可以做任何命令。