Gunicorn 为一些(但不是全部)烧瓶模块抛出 ModuleNotFound

Gunicorn throws ModuleNotFound for some (but not all) flask modules

我有一个结构基本的 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_jsonflask_jwt_extended.

相同的错误

我不明白为什么会这样,尤其不明白为什么 flaskflask_corsflask_login 给出这个错误。

非常感谢任何帮助;谢谢。

您是否尝试过将 flask_bcrypt 导入为 from flask.ext.bcrypt import check_password_hash

我忘了激活我的 virtualenv

谢谢,睡不着!它实际上工作正常