Gunicorn выбрасывает ModuleNotFound для некоторых (но не для всех) flask модулей - PullRequest
1 голос
/ 21 января 2020

У меня есть базовое c flask приложение с такой структурой:

/
├── app.py
├── models.py
├── venv
│   ├── bin
│   └── ...

И app.py имеет такой импорт:

from flask import (
  Flask,
  g,
  render_template,
  flash,
  redirect,
  url_for,
  abort,
  jsonify
)
from flask_cors import CORS
from flask_login import (
  LoginManager,
  login_user,
  logout_user,
  login_required,
  current_user
)
from flask_bcrypt import check_password_hash
from flask_expects_json import expects_json
from flask_jwt_extended import (
  JWTManager, 
  create_access_token, 
  create_refresh_token, 
  fresh_jwt_required,
  jwt_refresh_token_required, 
  get_jwt_identity, 
  get_raw_jwt
)

Я пытаюсь запустить приложение с gunicorn app:app, но я получаю ModuleNotFoundError: No module named 'flask_bcrypt', когда я делаю.

На самом деле все модули установлены, и я могу запустить приложение с python3 app.py просто отлично. Если я переместлю строку from flask_bcrypt... вниз, я получу ту же ошибку для flask_expects_json, а затем flask_jwt_extended.

Я не понимаю, почему это происходит, и я особенно не понимаю, почему flask, flask_cors и flask_login не дают эту ошибку.

Любая помощь очень ценится; спасибо.

Ответы [ 2 ]

1 голос
/ 22 января 2020

Я забыл активировать свой virtualenv 100

Спасибо, не спать! На самом деле работает нормально

0 голосов
/ 21 января 2020

Вы пробовали импортировать flask_bcrypt как from flask.ext.bcrypt import check_password_hash

...