After installing apache-superset using pip in virtual environment, I run:
superset upgrade db
I run into the following error:
ImportError: cannot import name '_ColumnEntity' from 'sqlalchemy.orm.query' (/Users/ahmedawny/supersetenv/lib/python3.7/site-packages/sqlalchemy/orm/query.py)
Any advice would be appreciated.
The core reason for this is that sqlalchemy 1.4 shipped, so it is now the default that pip installs. There were many interface changes and a new query interface added.
So upgrading to 1.4 breaks stuff that depends on the sqlalchemy 1.3 API internals. In your requirements.txt file-- pin the project version to the 1.3.x series until the rest of your stuff catches up. For example, as of this date sqlalchemy-utils is still dependent on sqlalchemy 1.3x.
requirements.txt:
sqlalchemy < 1.4.0
Then use:
pip -r requirements.txt
to "downgrade" to the pinned version.
Go to sqlalchemy_utils.functions file and change :
in consequence of this, i belive it should change some stuff along the code...
If you don't want to modify the requirements file, as recommended in @InsertSpywareTrackingHere's answer, you can manually pip install an older version instead:
pip install sqlalchemy==1.3.24
you can temporarily fix this by changing the imports in sqlalchemy_utils\functions\orm.py:
from sqlalchemy.orm.query import _ColumnEntity
to
from sqlalchemy.orm.context import _ColumnEntity
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With