Open narodnik opened 5 months ago
building pyzmq from source requires cmake. Try installing cmake first. scikit-build-core tries to install cmake via a wheel if it's not present, but it doesn't work everywhere.
Thanks, actually I already did that, but it seems cmake required libxml2
to also be installed. Installing that fixed the current error, but now I get another one:
~ $ pip install zmq
Collecting zmq
Using cached zmq-0.0.0.zip (2.2 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting pyzmq (from zmq)
Using cached pyzmq-26.0.3.tar.gz (267 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: zmq, pyzmq
Building wheel for zmq (pyproject.toml) ... done
Created wheel for zmq: filename=zmq-0.0.0-py3-none-any.whl size=1262 sha256=6873696fe49cc5eca00f165831e304a886bfd8a0899c4f33cbd11f0ccb050318
Stored in directory: /data/data/com.termux/files/home/.cache/pip/wheels/16/9e/c7/d497825227491fa00cca08b88ae37f9bcc14809233db76342c
Building wheel for pyzmq (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for pyzmq (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
*** scikit-build-core 0.9.5 using CMake 3.29.4 (wheel)
*** Configuring CMake...
loading initial cache file /data/data/com.termux/files/usr/tmp/tmp_avl48zb/build/CMakeInit.txt
/home/builder/.termux-build/libuv/src/src/unix/process.c:957: assertion "!(options->flags & ~(UV_PROCESS_DETACHED | UV_PROCESS_SETGID | UV_PROCESS_SETUID | UV_PROCESS_WINDOWS_HIDE | UV_PROCESS_WINDOWS_HIDE_CONSOLE | UV_PROCESS_WINDOWS_HIDE_GUI | UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS))" failed
*** CMake configuration failed
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pyzmq
Successfully built zmq
Failed to build pyzmq
ERROR: Could not build wheels for pyzmq, which is required to install pyproject.toml-based projects
Hm, it looks like the cmake wheel built, but it doesn't work. Can you install cmake with your package manager and check the version? I don't know anything about termux.
I already installed cmake (and libxml2) otherwise we get the first error. cmake version is 3.29.4
It seems the cmake error is related to process flags.
Something's fishy, since it says
scikit-build-core 0.9.5 using CMake 3.29.4 (wheel)
which suggests scikit-build-core is not finding an acceptable cmake, and instead using the cmake wheel, which appears to not be built properly. What's are which -a cmake
and cmake --version
in the shell before you call pip install
?
Also note, the package is not called zmq
, it's pyzmq
. zmq
is a typo-squatting package that only depends on pyzmq.
which
shows the path as /data/data/com.termux/files/usr/bin/cmake
. The cmake version is 3.29.4.
I tried building the docker image, and got a pyzmq wheel file for aarch64. Installed that, but it couldn't find libzmq.so
which is in /data/data/com.termux/files/usr/lib
, so then I set LD_LIBRARY_PATH
. Now when trying to import zmq, I get ImportError: dlopen failed: cannot locate symbol "PyExc_ImportError" referenced by "/data/data/com.termux/files/usr/lib/python3.11/site-packages/zmq/backend/cython/_zmq.cpython-311.so"...
I guess it's not to be... 😁
I guess it's not to be... 😁
FYI I just got it to install with
SODIUM_INSTALL=system CC=clang pip install --no-binary=pyzmq pyzmq
@tribixbite but does it also load? That's where I run into trouble.
@tribixbite but does it also load? That's where I run into trouble.
The thing I needed it for worked after install and
python - c "import zmq; print('pyzmq loaded successfully')"
returns "pyzmq loaded successfully", so... seems to load ok
This is a pyzmq bug
What pyzmq version?
master
What libzmq version?
master
Python version (and how it was installed)
3.11
OS
termux/android
What happened?
When I try to install via pip, it spews out cmake related errors.
I tried following the old advice from here, but it seems pyzmq was recently upgraded to cmake infra so it no longer is true.
Code to reproduce bug
No response
Traceback, if applicable
No response
More info
No response