Почему из flask .cli импортировать основной сбой при установке FLASK_ENV? - PullRequest
0 голосов
/ 28 февраля 2020

Я установил flask в виртуальной среде, как описано здесь https://flask.palletsprojects.com/en/1.1.x/installation/#install -create-env

  • Создайте каталог и запустите python3 -m venv venv внутри каталога для использования виртуальной среды
  • Затем источник venv / bin / activ для активации среды
  • Затем pip install flask

Затем я создал скрипт как описано здесь https://flask.palletsprojects.com/en/1.1.x/quickstart/

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

Затем я добавил экспорт FLASK_APP = hello.py и запустил python3 -m flask run, который работал просто отлично

python3 -m flask run
 * Serving Flask app "hello.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Но когда я затем изменяю FLASK_ENV = development и запускаю ту же команду, я получаю сообщение об ошибке

python3 -m flask run
 * Serving Flask app "hello.py" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
/usr/local/opt/python/bin/python3.7: No module named flask

Я сбрасываю FLASK_ENV и снова запускаю ту же команду, и все работает так же, как когда я делал это первый раз время.

1 Ответ

0 голосов
/ 28 февраля 2020

Ну, одним из решений может быть не задавать какие-либо переменные окружения и запускать Flask только с python.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)

и затем вы просто активируете виртуальную среду с помощью source env/bin/activate и затем запускаете python main.py.

Вы также можете установить среду flask в своем коде, выполнив app.config['FLASK_ENV'] = 'development', но я бы не рекомендовал его, поскольку, если вы собираетесь развертывать приложение Flask на таких платформах, как Heroku или GCP, это не будет работать, как задумано.

...