inveniosoftware / inveniosoftware/invenio-cli
`invenio-cli install` fails with exception in `flask_sqlalchemy`
- Dominant language
- Python
- Stars
- 14
- Forks
- 49
- PR merge metrics
- No merged PRs in 30d
Description
## Describe the bug
I tried installing InvenioRDM following the [quick start documentation](https://inveniordm.docs.cern.ch/install/).
Initially I tried the containerized version by running `invenio-cli containers start --lock --build --setup`, which failed with the exception below.
In an attempt to localize the problem I tried the local version instead and realized that the problem lies with installing the Python dependencies.
When running `invenio-cli install`, the command exits with the following exception:
```
ubuntu@invenio:~/nccr-catalysis$ invenio-cli install
Installing python dependencies... Please be patient, this operation might take some time...
Creating a virtualenv for this project...
Pipfile: /home/ubuntu/nccr-catalysis/Pipfile
Using /home/ubuntu/.virtualenvs/invenio/bin/python3.8 (3.8.10) to create virtualenv...
⠏ Creating virtual environment...created virtual environment CPython3.8.10.final.0-64 in 1186ms
creator CPython3Posix(dest=/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/ubuntu/.local/share/virtualenv)
added seed packages: pip==21.3.1, setuptools==60.2.0, wheel==0.37.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
✔ Successfully created virtual environment!
Virtualenv location: /home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs
Installing dependencies from Pipfile.lock (c18a03)...
🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 222/222 — 00:04:02
All dependencies are now up-to-date!
Updating instance path...
Failed to install dependencies.
Errors: Traceback (most recent call last):
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/bin/invenio", line 5, in
from invenio_app.cli import cli
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_app/cli.py", line 13, in
from .factory import create_app
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_app/factory.py", line 99, in
app_class=app_class(),
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_app/factory.py", line 76, in app_class
from invenio_files_rest.app import Flask as FlaskBase
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_files_rest/__init__.py", line 972, in
from .ext import InvenioFilesREST
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_files_rest/ext.py", line 16, in
from .cli import files as files_cmd
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_files_rest/cli.py", line 15, in
from invenio_db import db
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_db/__init__.py", line 93, in
from .ext import InvenioDB
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_db/ext.py", line 23, in
from .cli import db as db_cmd
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_db/cli.py", line 23, in
from .utils import create_alembic_version_table, drop_alembic_version_table
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_db/utils.py", line 16, in
from .shared import db
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/invenio_db/shared.py", line 104, in
db = SQLAlchemy(metadata=metadata)
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 714, in __init__
self.session = self.create_scoped_session(session_options)
File "/home/ubuntu/.virtualenvs/nccr-catalysis-W5926JBs/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py", line 747, in create_scoped_session
scopefunc = options.pop('scopefunc', _app_ctx_stack.__ident_func__)
AttributeError: 'LocalStack' object has no attribute '__ident_func__'
```
## Steps to Reproduce
1. Install InvenioRDM v8.0 on Ubuntu 20.04 with Python 3.8.10
2. Run `invenio-cli install`
## Expected behavior
`invenio-cli install` correctly installs all Python dependencies
## Additional context
OS: Ubuntu 20.04.4 LTS
Python: 3.8.10
InvenioRDM: v8.0
Contributor guide
Assessment
This issue has not been assessed yet.