Колба не может найти сценарий manage.py
Мое приложение для колб называется пакетом app
расположен в /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
Я экспортирую это как PATHONPATH
, так manage.py
можно импортировать app
echo $PATHONPATH
/Users/gexinjie/Codes/MyProject/xinnjie_blog
и экспорт FLASK_APP
echo $FLASK_APP
manage.py
текущий каталог /Users/gexinjie/Codes/MyProject/xinnjie_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...')
здесь app.__init__.py
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
есть фляга в себе)
# manage.py
# this work well
app = Flask(__name__) # not app = create_app('development')
Спасибо
1 ответ
Спасибо @Adam, эта проблема была решена после удаления Anaconda.
Потому что все время я проверял manage.py
на инструменте команды Pycharm, и что flask
был установлен Anaconda(python версии 3.6), в нем могут отсутствовать некоторые расширения (обычно я использую python3.5 на терминале). Так что я думаю, что проблема возникает во время импорта.
Командный инструмент flask жалуется на "не могу найти приложение", но настоящая проблема - ошибка импорта. Так что это очень запутанно.
"универсальное" решение:
Поэтому, если вы сталкиваетесь с такой проблемой, как я, я советую вам сначала проверить местоположение вашего приложения(попробуйте и относительный путь, и абсолютный путь), относительный путь может вызвать проблему определения местоположения, когда вы находитесь не в правильном рабочем каталоге.. Так что абсолютный путь рекомендуется.
Если все в пути прошло хорошо, убедитесь, что все пакеты, необходимые для вашего приложения, установлены и могут быть импортированы. если вы используете какой-то тип виртуальной среды или что-то в этом роде (в моем случае я использую другую версию python, в которой отсутствуют некоторые расширения фляги), возможно, ошибка импорта делает flask
Пожаловаться.
Надеюсь, это поможет вам.