-
Notifications
You must be signed in to change notification settings - Fork 64
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
PDM and Poetry can't install symengine properly #474
Comments
I tested to create a venv with Python 3.12 and install symengine without using poetry and it works fine on my computer:
The files installed:
|
Yes, I got the same with just a normal venv. What I notice is that several directories in the site-packages are missing in the pdm version:
The lib/ folder is empty, symengine.libs doesn't get created, and symengine-0.11. Perhaps this is more a question for pdm and poetry than symengine? They seem to be missing the external libraries. |
Could still be a problem with symengine. Does it work if you use poetry to install some other library that also uses compiled code, like for example numpy? |
Yes, numpy works without issue... |
I just discovered that the lib/, symengine-0.11.0.dist-info, symengine.libs are placed in the lib64 directory.
Whereas numpy gets placed entirely in the lib64 site-packages not spread across. |
And when I move all the files that are placed into the .venv/lib/python3.12/site-packages/ into the lib64 then everything works are expected. |
Good find @martinruefenacht! I think this is the crucial problem. Now we just need to figure out if this is caused by the symengine wheel being composed in a faulty way or if this is the fault of the installation procedure. |
Well I am not familiar with this stuff. I unpacked the numpy and symengine wheels to have a look. What stood out was that the symengine has a .data directory and that contains what I see in the lib/ instead of the lib64/.
|
I just ran into this myself while I performed a git bisection to find the first bad commit based on the fact that I knew v0.9.2 to be working. The commit which introduced the failure to build as expected is: bc84086 I am not quite sure what to make of this but hopefully this helps in finding a solution. |
@mrossinek are you also using poetry? |
No I am using pure |
Strange. I use |
I am also on Fedora if that helps. |
I had a colleague point out to me, that it could possibly be related to how the OS (in this case Fedora) handles |
Okay, here a few more insights.
|
Even more information: We seem to be running into the distinction of In I have not worked with Python + cmake before, so the question remains on how to resolve this problem. |
What I do not understand, is why the wheels that are built for |
I just replicated the finding of @mrossinek with both tox and nox (3.8-3.12). Same problem as I found with poetry and pdm. This was all on Fedora. For fun I tested on Debian quickly with poetry and tox (3.11) and those worked. |
Also have this error on |
My hotfix is to copy everything in my virtual environment to the /lib... manually. I don't know how to fix this issue, I assume the setup.py has to be adjusted somehow to modify the packaging for fedora specifically? |
This works
|
Another data point: Problem persists for me on different fedora 39 and 40 platforms. It does not occur an an Arch linux platform. |
Another data point to add to this discussion: I was running into this issue and had discovered that poetry was not using the correct python version managed by my |
I am trying to run symengine in a PDM or Poetry project and while I can install it via "pdm add" or "poetry add" and I find it in the virtualenv site-packages, the lib directory is empty compared to my globally installed version with my OS python.
When I run python directly from the venv and import symengine I get:
Is this a problem with both Poetry and PDM or with symengine not picking something up?
The text was updated successfully, but these errors were encountered: