-
Notifications
You must be signed in to change notification settings - Fork 636
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
BUG: pyzmq v26.0.0 installation fails on Bullseye (build from sources) #1976
Comments
building pyzmq 26 from source requires cmake. If you don't have cmake, there is a Python This is the biggest downside of the new build system, and there's nothing really that can be done about it until someone can address scikit-build/cmake-python-distributions#33. If you have the ability to install cmake, that's what is required. |
I believe #1977 fixed the issue preventing the piwheels builds of pyzmq 26, I'll do 26.0.1 with that tonight or tomorrow. |
Hello, there seem to be an issue, many builds are missing from https://pypi.org/project/pyzmq/26.0.1/#files , especially amd64 build, which were present in https://pypi.org/project/pyzmq/26.0.0/#files |
The CI upload took a while today, should be all there now. |
The 26.0.2 builds appeared to work fine on piwheels: https://www.piwheels.org/project/pyzmq/ |
The problem on bullseye appears to be that cmake 3.29.x has no wheel package for python 3.9 for arm, so the installation fails. It works with cmake 3.28.x though. |
With 26.0.2 we have a new problem on Bookworm now.
|
Do you have a link to build commands, context, and output? This is what you would get e.g. if you built against libzmq with drafts but the at runtime found a different libzmq built without drafts. It might be missing rpath in your link flags. |
We build libzmq and pyzmq like this (as described here)
Note: This problem existed most likely already with v26.0.0 but pops up only at runtime. We added this version check just recently, so it now pops up directly in the ci run. |
Can you add it would also help to have the full build output of pyzmq, just to see what libzmq it is finding, as well as based on the output, it really seems like pyzmq is built with a libzmq with drafts, but a different libzmq is being found at runtime. Check if there is more than one on your system. It may be that you need to add rpath arguments if there’s more than one (ldconfig might also help with this) to ensure that the right one is loaded. |
Adding Here is the build log for pyzmq from the ci Buildlog pyzmq
And the Output ldd
I added some output and apparently the system has libzmq already installed in a different version, which would support your statement that the wrong lib is linked.
|
If the installation is run on a real pi, no libzmq version is installed by default, so the output is like this instead:
Here |
Can you add export LDFLAGS="-Wl,-rpath,/usr/local/lib"
export SKBUILD_CMAKE_VERBOSE=true and share the output again? EDIT: added missing |
Buildlog pyzmq
|
and is the result still the same for |
Ah sry, yes looks the same Output ldd
|
I have created a testrepo running the build commands in an action, to better test this without clutter. |
Here are the things i observed:
|
See this answer. This is unrelated to pyzmq, but ld itself. ld has a cache, so you may need to run ldconfig to refresh its cache after installing a new library, especially when you already have another version of the same library at a lower priority on ld's path.
"Custom" prefix usually needs to be combined with setting the runtime path (rpath), e.g I made a mistake in my suggestion where I specified the prefix ( It's arguable whether this should be done by pyzmq by default or not, because it doesn't seem to be standard practice for other packages to do this, but I did used to do it in setup.py, so I've put it back in #1983. |
Thanks a lot for the help and clearing this out! Using the changed prefix path For me personally it would just be fine to add this to the documentation, so c&p gets it working. :) |
The original issue still persists, but is not caused from this project (see comment), so closing this. Thanks again! |
What pyzmq version?**
26.0.0
What libzmq version?**
4.3.5 (seperatly build and installed)
Python version (and how it was installed)
python 3.9 via apt-get
OS
Raspberry Pi OS Bullseye 32-bit / Github CI Docker Debian Bullseye
What happened?
In our projekt we build pyzmq from sources with a seperatly prebuild libzmq installation.
Prior to the v26.0.0 release this succeeded on Bullseye and Bookworm. Since the new version release this fails on Bullseye.
Traceback, if applicable
More info
libzmq prebuild and copied to "/usr/local".
Build pyzmq
ZMQ_PREFIX="/usr/local"
ZMQ_DRAFT_API=1
pip install -v pyzmq --no-binary pyzmq
We had also problems with the prerelease some time ago: #1937
The text was updated successfully, but these errors were encountered: