Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

excalibur initdb error on ubuntu #185

Open
1rdsk1 opened this issue Aug 16, 2024 · 4 comments
Open

excalibur initdb error on ubuntu #185

1rdsk1 opened this issue Aug 16, 2024 · 4 comments

Comments

@1rdsk1
Copy link

1rdsk1 commented Aug 16, 2024

hi, I'm trying to get excalbur to work in ubuntu but get below error. Gemini AI suggests: "The error message you're encountering with excalibur initdb suggests there's a compatibility issue within the excalibur package. It seems the package relies on the MutableMapping class from collections, which has been removed in Python 3.10 and above."

(excalibur) xxx:~$ excalibur initdb
Traceback (most recent call last):
File "/home/rupert/anaconda3/envs/excalibur/bin/excalibur", line 5, in
from excalibur.cli import cli
File "/home/rupert/anaconda3/envs/excalibur/lib/python3.12/site-packages/excalibur/cli.py", line 7, in
from . import version, settings
File "/home/rupert/anaconda3/envs/excalibur/lib/python3.12/site-packages/excalibur/settings.py", line 10, in
from . import configuration as conf
File "/home/rupert/anaconda3/envs/excalibur/lib/python3.12/site-packages/excalibur/configuration.py", line 7, in
from backports.configparser import ConfigParser
File "/home/rupert/anaconda3/envs/excalibur/lib/python3.12/site-packages/backports/configparser/init.py", line 130, in
from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (/home/rupert/anaconda3/envs/excalibur/lib/python3.12/collections/init.py)

@CHN-STUDENT
Copy link

also i get same error using my windows10, python 3.12.4

(venv) D:\python\camelot\excalibur>excalibur initdb
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "D:\python\camelot\venv\Scripts\excalibur.exe\__main__.py", line 4, in <module>
  File "D:\python\camelot\venv\Lib\site-packages\excalibur\cli.py", line 6, in <module>
    from . import settings, __version__
  File "D:\python\camelot\venv\Lib\site-packages\excalibur\settings.py", line 8, in <module>
    from . import configuration as conf
  File "D:\python\camelot\venv\Lib\site-packages\excalibur\configuration.py", line 4, in <module>
    from backports.configparser import ConfigParser
  File "D:\python\camelot\venv\Lib\site-packages\backports\configparser\__init__.py", line 130, in <module>
    from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (C:\Program Files\Python312\Lib\collections\__init__.py)

@dnlzm
Copy link

dnlzm commented Sep 17, 2024

@fl4p
Copy link

fl4p commented Sep 29, 2024

>>> from collections import MutableMapping
<stdin>:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working

use python<3.10, like your AI prompt already pointed out

@nicolnt
Copy link

nicolnt commented Jan 13, 2025

I initially installed Excalibur without changing python version, so it used python 3.10. Then after getting the same error message as mentioned and seeing this comment:

use python<3.10, like your AI prompt already pointed out

I created a new conda environment "excalibur" with python 3.9 and installed Excalibur here.

python --version
Python 3.9.21
Excalibur installation console log: ERROR
(excalibur) nicolas@computer:~$ pip3 install excalibur-py
Collecting excalibur-py
  Using cached excalibur_py-1.0.1-py3-none-any.whl.metadata (7.9 kB)
Requirement already satisfied: camelot-py>=1.0.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (1.0.0)
Requirement already satisfied: celery>=4.1.1 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (5.4.0)
Requirement already satisfied: click>=8.0.1 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (8.1.8)
Requirement already satisfied: configparser>=7.1.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (7.1.0)
Requirement already satisfied: Flask>=3.1.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (3.1.0)
Requirement already satisfied: SQLAlchemy>=1.2.12 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (2.0.37)
Requirement already satisfied: Werkzeug>=3.1.3 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (3.1.3)
Requirement already satisfied: pypdfium2>=4 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (4.30.1)
Requirement already satisfied: Pillow>=11.1.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from excalibur-py) (11.1.0)
Requirement already satisfied: chardet>=5.1.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (5.2.0)
Requirement already satisfied: numpy>=1.24.4 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (2.0.2)
Requirement already satisfied: openpyxl>=3.1.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (3.1.5)
Requirement already satisfied: pdfminer-six>=20240706 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (20240706)
Requirement already satisfied: pypdf<4.0,>=3.17 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (3.17.4)
Requirement already satisfied: pandas>=1.5.3 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (2.2.3)
Requirement already satisfied: tabulate>=0.9.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (0.9.0)
Requirement already satisfied: typing-extensions>=4.12.2 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (4.12.2)
Requirement already satisfied: opencv-python-headless>=4.7.0.68 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from camelot-py>=1.0.0->excalibur-py) (4.10.0.84)
Requirement already satisfied: billiard<5.0,>=4.2.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (4.2.1)
Requirement already satisfied: kombu<6.0,>=5.3.4 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (5.4.2)
Requirement already satisfied: vine<6.0,>=5.1.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (5.1.0)
Requirement already satisfied: click-didyoumean>=0.3.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (0.3.1)
Requirement already satisfied: click-repl>=0.2.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (0.3.0)
Requirement already satisfied: click-plugins>=1.1.1 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (1.1.1)
Requirement already satisfied: tzdata>=2022.7 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (2024.2)
Requirement already satisfied: python-dateutil>=2.8.2 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from celery>=4.1.1->excalibur-py) (2.9.0.post0)
Requirement already satisfied: Jinja2>=3.1.2 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from Flask>=3.1.0->excalibur-py) (3.1.5)
Requirement already satisfied: itsdangerous>=2.2 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from Flask>=3.1.0->excalibur-py) (2.2.0)
Requirement already satisfied: blinker>=1.9 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from Flask>=3.1.0->excalibur-py) (1.9.0)
Requirement already satisfied: importlib-metadata>=3.6 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from Flask>=3.1.0->excalibur-py) (8.5.0)
Requirement already satisfied: greenlet!=0.4.17 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from SQLAlchemy>=1.2.12->excalibur-py) (3.1.1)
Requirement already satisfied: MarkupSafe>=2.1.1 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from Werkzeug>=3.1.3->excalibur-py) (3.0.2)
Requirement already satisfied: prompt-toolkit>=3.0.36 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from click-repl>=0.2.0->celery>=4.1.1->excalibur-py) (3.0.48)
Requirement already satisfied: zipp>=3.20 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from importlib-metadata>=3.6->Flask>=3.1.0->excalibur-py) (3.21.0)
Requirement already satisfied: amqp<6.0.0,>=5.1.1 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from kombu<6.0,>=5.3.4->celery>=4.1.1->excalibur-py) (5.3.1)
Requirement already satisfied: et-xmlfile in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from openpyxl>=3.1.0->camelot-py>=1.0.0->excalibur-py) (2.0.0)
Requirement already satisfied: pytz>=2020.1 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from pandas>=1.5.3->camelot-py>=1.0.0->excalibur-py) (2024.2)
Requirement already satisfied: charset-normalizer>=2.0.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from pdfminer-six>=20240706->camelot-py>=1.0.0->excalibur-py) (3.4.1)
Requirement already satisfied: cryptography>=36.0.0 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from pdfminer-six>=20240706->camelot-py>=1.0.0->excalibur-py) (44.0.0)
Requirement already satisfied: six>=1.5 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from python-dateutil>=2.8.2->celery>=4.1.1->excalibur-py) (1.17.0)
Requirement already satisfied: cffi>=1.12 in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from cryptography>=36.0.0->pdfminer-six>=20240706->camelot-py>=1.0.0->excalibur-py) (1.17.1)
Requirement already satisfied: wcwidth in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from prompt-toolkit>=3.0.36->click-repl>=0.2.0->celery>=4.1.1->excalibur-py) (0.2.13)
Requirement already satisfied: pycparser in ./miniconda3/envs/excalibur/lib/python3.9/site-packages (from cffi>=1.12->cryptography>=36.0.0->pdfminer-six>=20240706->camelot-py>=1.0.0->excalibur-py) (2.22)
Using cached excalibur_py-1.0.1-py3-none-any.whl (1.5 MB)
Installing collected packages: excalibur-py
Successfully installed excalibur-py-1.0.1

But surprisingly it's still using some library files with python 3.10

Excalibur init console log: OK
(excalibur) nicolas@computer:~$ excalibur initdb
Traceback (most recent call last):
  File "/home/nicolas/.local/bin/excalibur", line 5, in <module>
    from excalibur.cli import cli
  File "/home/nicolas/.local/lib/python3.10/site-packages/excalibur/cli.py", line 7, in <module>
    from . import __version__, settings
  File "/home/nicolas/.local/lib/python3.10/site-packages/excalibur/settings.py", line 10, in <module>
    from . import configuration as conf
  File "/home/nicolas/.local/lib/python3.10/site-packages/excalibur/configuration.py", line 7, in <module>
    from backports.configparser import ConfigParser
  File "/home/nicolas/.local/lib/python3.10/site-packages/backports/configparser/__init__.py", line 130, in <module>
    from collections import MutableMapping

Forcing to use the python version of the environment I managed to start it but still I cannot import a PDF

(excalibur) nicolas@computer:~$ python -m excalibur initdb
/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/pypdf/_crypt_providers/_cryptography.py:32: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4

When I upload the file, I get an error both in the console and on the webpage

image

(excalibur) nicolas@computer:~$ python -m excalibur webserver
/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/pypdf/_crypt_providers/_cryptography.py:32: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.
  from cryptography.hazmat.primitives.ciphers.algorithms import AES, ARC4
 * Serving Flask app 'excalibur.www.app'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET / HTTP/1.1" 302 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /files HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /static/js/vendor/popper.min.js HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /static/js/vendor/bootstrap.min.js HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /static/css/base.css HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /static/css/vendor/bootstrap.min.css HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /static/js/vendor/jquery-3.3.1.min.js HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:24:35] "GET /static/js/files.js HTTP/1.1" 200 -
127.0.0.1 - - [13/Jan/2025 11:33:53] "POST /files HTTP/1.1" 200 -
[2025-01-13 11:33:53,911] ERROR in app: Exception on /workspaces/66e7c8f7-9cd3-4909-b7ef-b63dabc7ee1c [GET]
Traceback (most recent call last):
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/excalibur/www/views.py", line 106, in workspaces
    return render_template(
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/flask/templating.py", line 150, in render_template
    return _render(app, template, context)
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/flask/templating.py", line 131, in _render
    rv = template.render(context)
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/jinja2/environment.py", line 1295, in render
    self.environment.handle_exception()
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/jinja2/environment.py", line 942, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/excalibur/www/templates/workspace.html", line 1, in top-level template code
    {% extends "base.html" %}
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/excalibur/www/templates/base.html", line 61, in top-level template code
    {% block workspace %}{% endblock %}
  File "/home/nicolas/miniconda3/envs/excalibur/lib/python3.9/site-packages/excalibur/www/templates/workspace.html", line 12, in block 'workspace'
    {% if imagepaths is not none or imagepaths|length == 0 %}
TypeError: object of type 'NoneType' has no len()
127.0.0.1 - - [13/Jan/2025 11:33:53] "GET /workspaces/66e7c8f7-9cd3-4909-b7ef-b63dabc7ee1c HTTP/1.1" 500 -
127.0.0.1 - - [13/Jan/2025 11:33:53] "GET /favicon.ico HTTP/1.1" 404 -
Traceback (most recent call last):
  File "/home/nicolas/.local/bin/excalibur", line 5, in <module>
    from excalibur.cli import cli
  File "/home/nicolas/.local/lib/python3.10/site-packages/excalibur/cli.py", line 7, in <module>
    from . import __version__, settings
  File "/home/nicolas/.local/lib/python3.10/site-packages/excalibur/settings.py", line 10, in <module>
    from . import configuration as conf
  File "/home/nicolas/.local/lib/python3.10/site-packages/excalibur/configuration.py", line 7, in <module>
    from backports.configparser import ConfigParser
  File "/home/nicolas/.local/lib/python3.10/site-packages/backports/configparser/__init__.py", line 130, in <module>
    from collections import MutableMapping
ImportError: cannot import name 'MutableMapping' from 'collections' (/usr/lib/python3.10/collections/__init__.py)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants