-
Notifications
You must be signed in to change notification settings - Fork 7
Description
I tried to build and run with Python 3.12 and failed. Basically, there seem to be two problems:
- Our run-time dependencies numpy and pandas do not install properly on Python 3.12 yet.
- It doesn't seem to bundle the MonetDB shared libraries.
I'm on Debian 12.
I'm not too familiar with MonetDB/e, MonetDBe-Python and Python packaging in general so maybe I did something obvious wrong. Anyway, here's what I did and how it came out:
-
Create a fresh venv 'buildenv' with python 3.12.0rc1.
-
In the buildenv, install 'build'
-
Build using
python3 -m build. This yields a file dist/monetdbe-0.11-cp312-cp312-linux_x86_64.whl -
Set up a different venv 'runenv'.
-
If I
pip install monetdbe-0.11-cp312-cp312-linux_x86_64.whl, installing the numpy dependency fails because module distutils is missing. Fix this withpip install setuptools. -
Now the numpy install fails with
module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?. -
Work around this by installing prereleases of numpy and pandas that work with 3.12.0rc1:
pip install --pre numpy pandas. -
Now the
pip install *.whlworks. -
If I now
pip install jupyterI can open thebasic_example.ipynbnotebook. However, running monetdb.connect givesImportError: libmonetdbe.so.26: cannot open shared object file: No such file or directory. And indeed,
(runenv) » ldd /tmp/jvr/lala/runenv/lib/python3.12/site-packages/monetdbe/_lowlevel.abi3.so
linux-vdso.so.1 (0x00007ffe48d56000)
libmonetdbe.so.26 => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7de5288000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7de548c000)
If I set LD_LIBRARY_PATH to point to my MonetDB installation, it works. But isn't it supposed to bundle the required libraries in the wheel?