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
ERROR: Python: ImportError: libspqr.so.2: undefined symbol: cholmod_l_metis
#431
Comments
this problem exists in 1.8 and 1.9 but seems to be fixed in 1.10-rc1 I know this with some certainty because the same problem also exists when using Julia-managed Conda environment (in 1.8 and 1.9) julia> using PythonCall
julia> pyimport("photospline")
ERROR: Python: ImportError: /home/akako/.conda/envs/hep/lib/python3.11/site-packages/../.././libspqr.so.2: undefined symbol: cholmod_l_metis
Python stacktrace: none
Stacktrace:
[1] pythrow()
@ PythonCall ~/.julia/packages/PythonCall/wXfah/src/err.jl:94
[2] errcheck
@ ~/.julia/packages/PythonCall/wXfah/src/err.jl:10 [inlined]
[3] pyimport(m::String)
@ PythonCall ~/.julia/packages/PythonCall/wXfah/src/concrete/import.jl:11
[4] top-level scope
@ REPL[4]:1 |
From the name of the missing symbol I'm guessing it's a version clash between Conda and Julia for some linear algebra library? |
So Julia 1.10 fixed it just by chance 👀? |
Yeah my guess is Julia 1.9 uses a older linear algebra library than one of your Conda dependencies but Julia 1.10 uses a newer one. So in the future if you upgrade one and not the other they may clash again. This is a fundamental issue with using two essentially independent package managers to install binaries which get loaded into the same process. CondaPkg works around this for libstdc++ by detecting which version Julia is using and installing a compatible version of the corresponding Conda package. If you can figure out which library is causing your issue and the corresponding Conda package we might be able to fix it. All assuming my hunch is correct! |
I'm not loading any Julia package. If your theory is correct (high chance I think), then it makes sense because right now Julia loads LinearAlgebra.jl automatically in 1.9 |
Yeah did LinearAlgebra get removed from the sysimage or something in 1.10? That would explain it. Try loading LinearAlgebra in 1.10 before PythonCall and see if you see the issue again. |
Just tried that, still works on 1.10, and I think 1.10 (or anywhere really) hasn't successfully excised LA.jl anyway: |
Looks like Julia went from SuiteSparse v5 to v7 between 1.9 and 1.10. What version is in your Conda environment? |
https://github.com/icecube/photospline no idea, I think whatever is newest on Conda when it was built? |
Can you copy the result of |
|
Python
PythonCall.jl
The text was updated successfully, but these errors were encountered: