Errors after upgrade to 0.7.24
escuco opened this issue · 4 comments
Hello!
Today I wanted to update my instance from 0.7.23 to 0.7.24 (from PyPi).
The first step pip install -U fittrackee
worked well as always.
But the command ftcli db upgrade
throws this error:
Traceback (most recent call last):
File "/home/fittrack/fittrackee/bin/ftcli", line 5, in <module>
from fittrackee.cli import cli
File "/home/fittrack/fittrackee/lib64/python3.9/site-packages/fittrackee/__init__.py", line 21, in <module>
from flask_sqlalchemy import SQLAlchemy
File "/home/fittrack/fittrackee/lib64/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 14, in <module>
from flask import _app_ctx_stack, abort, current_app, request
ImportError: cannot import name '_app_ctx_stack' from 'flask' (/home/fittrack/fittrackee/lib64/python3.9/site-packages/flask/__init__.py)
When I want to start fittrackee now, I also get this error:
Traceback (most recent call last):
File "/home/fittrack/fittrackee/bin/fittrackee", line 5, in <module>
from fittrackee.__main__ import main
File "/home/fittrack/fittrackee/lib64/python3.9/site-packages/fittrackee/__init__.py", line 21, in <module>
from flask_sqlalchemy import SQLAlchemy
File "/home/fittrack/fittrackee/lib64/python3.9/site-packages/flask_sqlalchemy/__init__.py", line 14, in <module>
from flask import _app_ctx_stack, abort, current_app, request
ImportError: cannot import name '_app_ctx_stack' from 'flask' (/home/fittrack/fittrackee/lib64/python3.9/site-packages/flask/__init__.py)
Did I miss something?
Jan
This was the upgrade log for pip install -U fittrackee
:
Requirement already satisfied: fittrackee in ./lib/python3.9/site-packages (0.7.23)
Collecting fittrackee
Obtaining dependency information for fittrackee from https://files.pythonhosted.org/packages/b6/f7/501bfd5604de808592b8481f237669e8ec9e9e24e16b391707c8b73e1954/fittrackee-0.7.24-py3-none-any.whl.metadata
Downloading fittrackee-0.7.24-py3-none-any.whl.metadata (4.1 kB)
Requirement already satisfied: authlib==1.2.1 in ./lib/python3.9/site-packages (from fittrackee) (1.2.1)
Requirement already satisfied: babel<3.0.0,>=2.11.0 in ./lib/python3.9/site-packages (from fittrackee) (2.11.0)
Collecting click<9.0.0,>=8.1.7 (from fittrackee)
Obtaining dependency information for click<9.0.0,>=8.1.7 from https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl.metadata
Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Requirement already satisfied: dramatiq[redis]<2.0,>=1.14 in ./lib/python3.9/site-packages (from fittrackee) (1.14.0)
Collecting flask<4.0,>=3.0 (from fittrackee)
Obtaining dependency information for flask<4.0,>=3.0 from https://files.pythonhosted.org/packages/36/42/015c23096649b908c809c69388a805a571a3bea44362fe87e33fc3afa01f/flask-3.0.0-py3-none-any.whl.metadata
Downloading flask-3.0.0-py3-none-any.whl.metadata (3.6 kB)
Requirement already satisfied: flask-bcrypt<2.0,>=1.0 in ./lib/python3.9/site-packages (from fittrackee) (1.0.1)
Requirement already satisfied: flask-dramatiq<0.7,>=0.6 in ./lib/python3.9/site-packages (from fittrackee) (0.6.0)
Requirement already satisfied: flask-limiter[redis]<4.0,>=3.5 in ./lib/python3.9/site-packages (from fittrackee) (3.5.0)
Requirement already satisfied: flask-migrate<5.0,>=4.0 in ./lib/python3.9/site-packages (from fittrackee) (4.0.0)
Requirement already satisfied: gpxpy==1.5.0 in ./lib/python3.9/site-packages (from fittrackee) (1.5.0)
Requirement already satisfied: gunicorn<22.0,>=21.0 in ./lib/python3.9/site-packages (from fittrackee) (21.2.0)
Requirement already satisfied: humanize<5.0,>=4.7 in ./lib/python3.9/site-packages (from fittrackee) (4.7.0)
Requirement already satisfied: psycopg2-binary<3.0,>=2.9 in ./lib/python3.9/site-packages (from fittrackee) (2.9.3)
Requirement already satisfied: pyjwt<3.0,>=2.8 in ./lib/python3.9/site-packages (from fittrackee) (2.8.0)
Requirement already satisfied: pyopenssl<24.0,>=23.2 in ./lib/python3.9/site-packages (from fittrackee) (23.2.0)
Requirement already satisfied: pytz<2024.0,>=2023.3 in ./lib/python3.9/site-packages (from fittrackee) (2023.3)
Requirement already satisfied: shortuuid<2.0.0,>=1.0.11 in ./lib/python3.9/site-packages (from fittrackee) (1.0.11)
Requirement already satisfied: sqlalchemy==1.4.49 in ./lib/python3.9/site-packages (from fittrackee) (1.4.49)
Requirement already satisfied: staticmap<0.6.0,>=0.5.7 in ./lib/python3.9/site-packages (from fittrackee) (0.5.7)
Requirement already satisfied: ua-parser<0.19.0,>=0.18.0 in ./lib/python3.9/site-packages (from fittrackee) (0.18.0)
Requirement already satisfied: cryptography>=3.2 in ./lib/python3.9/site-packages (from authlib==1.2.1->fittrackee) (38.0.4)
Requirement already satisfied: greenlet!=0.4.17 in ./lib/python3.9/site-packages (from sqlalchemy==1.4.49->fittrackee) (1.1.2)
Requirement already satisfied: prometheus-client>=0.2 in ./lib/python3.9/site-packages (from dramatiq[redis]<2.0,>=1.14->fittrackee) (0.14.1)
Requirement already satisfied: redis<5.0,>=2.0 in ./lib/python3.9/site-packages (from dramatiq[redis]<2.0,>=1.14->fittrackee) (4.3.3)
Collecting Werkzeug>=3.0.0 (from flask<4.0,>=3.0->fittrackee)
Obtaining dependency information for Werkzeug>=3.0.0 from https://files.pythonhosted.org/packages/b6/a5/54b01f663d60d5334f6c9c87c26274e94617a4fd463d812463626423b10d/werkzeug-3.0.0-py3-none-any.whl.metadata
Downloading werkzeug-3.0.0-py3-none-any.whl.metadata (4.1 kB)
Requirement already satisfied: Jinja2>=3.1.2 in ./lib/python3.9/site-packages (from flask<4.0,>=3.0->fittrackee) (3.1.2)
Requirement already satisfied: itsdangerous>=2.1.2 in ./lib/python3.9/site-packages (from flask<4.0,>=3.0->fittrackee) (2.1.2)
Requirement already satisfied: blinker>=1.6.2 in ./lib/python3.9/site-packages (from flask<4.0,>=3.0->fittrackee) (1.6.2)
Requirement already satisfied: importlib-metadata>=3.6.0 in ./lib/python3.9/site-packages (from flask<4.0,>=3.0->fittrackee) (4.11.4)
Requirement already satisfied: bcrypt>=3.1.1 in ./lib/python3.9/site-packages (from flask-bcrypt<2.0,>=1.0->fittrackee) (3.2.2)
Requirement already satisfied: limits>=2.8 in ./lib/python3.9/site-packages (from flask-limiter[redis]<4.0,>=3.5->fittrackee) (3.2.0)
Requirement already satisfied: ordered-set<5,>4 in ./lib/python3.9/site-packages (from flask-limiter[redis]<4.0,>=3.5->fittrackee) (4.1.0)
Requirement already satisfied: rich<14,>=12 in ./lib/python3.9/site-packages (from flask-limiter[redis]<4.0,>=3.5->fittrackee) (12.6.0)
Requirement already satisfied: typing-extensions>=4 in ./lib/python3.9/site-packages (from flask-limiter[redis]<4.0,>=3.5->fittrackee) (4.4.0)
Requirement already satisfied: Flask-SQLAlchemy>=1.0 in ./lib/python3.9/site-packages (from flask-migrate<5.0,>=4.0->fittrackee) (2.5.1)
Requirement already satisfied: alembic>=0.7 in ./lib/python3.9/site-packages (from flask-migrate<5.0,>=4.0->fittrackee) (1.8.0)
Requirement already satisfied: packaging in ./lib/python3.9/site-packages (from gunicorn<22.0,>=21.0->fittrackee) (21.3)
Requirement already satisfied: Pillow in ./lib/python3.9/site-packages (from staticmap<0.6.0,>=0.5.7->fittrackee) (9.5.0)
Requirement already satisfied: requests in ./lib/python3.9/site-packages (from staticmap<0.6.0,>=0.5.7->fittrackee) (2.28.0)
Requirement already satisfied: Mako in ./lib/python3.9/site-packages (from alembic>=0.7->flask-migrate<5.0,>=4.0->fittrackee) (1.2.0)
Requirement already satisfied: cffi>=1.1 in ./lib/python3.9/site-packages (from bcrypt>=3.1.1->flask-bcrypt<2.0,>=1.0->fittrackee) (1.15.0)
Requirement already satisfied: zipp>=0.5 in ./lib/python3.9/site-packages (from importlib-metadata>=3.6.0->flask<4.0,>=3.0->fittrackee) (3.8.0)
Requirement already satisfied: MarkupSafe>=2.0 in ./lib/python3.9/site-packages (from Jinja2>=3.1.2->flask<4.0,>=3.0->fittrackee) (2.1.1)
Requirement already satisfied: deprecated>=1.2 in ./lib/python3.9/site-packages (from limits>=2.8->flask-limiter[redis]<4.0,>=3.5->fittrackee) (1.2.13)
Requirement already satisfied: setuptools in ./lib/python3.9/site-packages (from limits>=2.8->flask-limiter[redis]<4.0,>=3.5->fittrackee) (58.1.0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in ./lib/python3.9/site-packages (from packaging->gunicorn<22.0,>=21.0->fittrackee) (3.0.9)
Requirement already satisfied: async-timeout>=4.0.2 in ./lib/python3.9/site-packages (from redis<5.0,>=2.0->dramatiq[redis]<2.0,>=1.14->fittrackee) (4.0.2)
Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in ./lib/python3.9/site-packages (from rich<14,>=12->flask-limiter[redis]<4.0,>=3.5->fittrackee) (0.9.1)
Requirement already satisfied: pygments<3.0.0,>=2.6.0 in ./lib/python3.9/site-packages (from rich<14,>=12->flask-limiter[redis]<4.0,>=3.5->fittrackee) (2.13.0)
Requirement already satisfied: charset-normalizer~=2.0.0 in ./lib/python3.9/site-packages (from requests->staticmap<0.6.0,>=0.5.7->fittrackee) (2.0.12)
Requirement already satisfied: idna<4,>=2.5 in ./lib/python3.9/site-packages (from requests->staticmap<0.6.0,>=0.5.7->fittrackee) (3.3)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./lib/python3.9/site-packages (from requests->staticmap<0.6.0,>=0.5.7->fittrackee) (1.26.9)
Requirement already satisfied: certifi>=2017.4.17 in ./lib/python3.9/site-packages (from requests->staticmap<0.6.0,>=0.5.7->fittrackee) (2022.5.18.1)
Requirement already satisfied: pycparser in ./lib/python3.9/site-packages (from cffi>=1.1->bcrypt>=3.1.1->flask-bcrypt<2.0,>=1.0->fittrackee) (2.21)
Requirement already satisfied: wrapt<2,>=1.10 in ./lib/python3.9/site-packages (from deprecated>=1.2->limits>=2.8->flask-limiter[redis]<4.0,>=3.5->fittrackee) (1.14.1)
Downloading fittrackee-0.7.24-py3-none-any.whl (9.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.0/9.0 MB 22.4 MB/s eta 0:00:00
Downloading click-8.1.7-py3-none-any.whl (97 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 3.1 MB/s eta 0:00:00
Downloading flask-3.0.0-py3-none-any.whl (99 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.7/99.7 kB 4.7 MB/s eta 0:00:00
Downloading werkzeug-3.0.0-py3-none-any.whl (226 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 226.6/226.6 kB 5.8 MB/s eta 0:00:00
Installing collected packages: Werkzeug, click, flask, fittrackee
Attempting uninstall: Werkzeug
Found existing installation: Werkzeug 2.3.7
Uninstalling Werkzeug-2.3.7:
Successfully uninstalled Werkzeug-2.3.7
Attempting uninstall: click
Found existing installation: click 8.1.3
Uninstalling click-8.1.3:
Successfully uninstalled click-8.1.3
Attempting uninstall: flask
Found existing installation: Flask 2.3.3
Uninstalling Flask-2.3.3:
Successfully uninstalled Flask-2.3.3
Attempting uninstall: fittrackee
Found existing installation: fittrackee 0.7.23
Uninstalling fittrackee-0.7.23:
Successfully uninstalled fittrackee-0.7.23
Successfully installed Werkzeug-3.0.0 click-8.1.7 fittrackee-0.7.24 flask-3.0.0
Hi Jan,
Thanks for the detail.
The error seems to be linked to FlaskSQLAlchemy version (which is not pinned in the package). This version may be not compatible with Flask 3+.
I was able to reproduce it with Flask-SQLAlchemy 2.5.1. The workaround is to update Flask-SQLAlchemy to 3.0.5:
$ pip install Flask-SQLAlchemy==3.0.5
I will add Flask-SQLAlchemy version in the package to force upgrade.
Edit:
I replaced the version with the last compatible version (3.0.5, tested on CI).
Hello,
thank you very much for your fast reply. Updating Flask-SQLAlchemy did the trick, everything is working fine now.
Thanks again
Jan
fix released in v0.7.25