SQLAlchemy 報錯:ImportError: cannot import name 'TYPE_CHECKING',安裝的版本有bug,換版本解決


報錯內容:

[2021-04-14 20:43:32 +0800] [8560] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
    worker.init_process()
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/workers/ggevent.py", line 203, in init_process
    super(GeventWorker, self).init_process()
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/workers/base.py", line 129, in init_process
    self.load_wsgi()
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
    return self.load_wsgiapp()
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/gunicorn/util.py", line 350, in import_app
    __import__(module)
  File "/data/app/abadmin/releases/feat-cag-related-users-tapd-1158596607001160647-9bec0f48/abadmin.py", line 5, in <module>
    from app import app
  File "/data/app/abadmin/releases/feat-cag-related-users-tapd-1158596607001160647-9bec0f48/app/__init__.py", line 13, in <module>
    from flask_sqlalchemy import SQLAlchemy
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py", line 22, in <module>
    import sqlalchemy
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/sqlalchemy/__init__.py", line 8, in <module>
    from . import util as _util  # noqa
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/sqlalchemy/util/__init__.py", line 14, in <module>
    from ._collections import coerce_generator_arg  # noqa
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/sqlalchemy/util/_collections.py", line 16, in <module>
    from .compat import binary_types
  File "/data/app/abadmin/current/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 189, in <module>
    from typing import TYPE_CHECKING
ImportError: cannot import name 'TYPE_CHECKING'
[2021-04-14 20:43:32 +0800] [8560] [INFO] Worker exiting (pid: 8560)

原因

  1. 使用的python版本為3.5
  2. Flask-SQLAlchemy 2.3.2會安裝SQLAlchemy 1.3.22
  3. SQLAlchemy的這個版本1.3.22,有bug:https://github.com/sqlalchemy/sqlalchemy/issues/6213 ,所以報上面錯誤

解決

不使用 Flask-SQLAlchemy 安裝的SQLAlchemy版本,指定SQLAlchemy版本為1.3.22,requirements.txt文件中寫入:SQLAlchemy==1.3.22

資料

資料 網址
bug issues https://github.com/sqlalchemy/sqlalchemy/issues/6213


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM