ray-project / pygloo

Pygloo provides Python bindings for Gloo.
Apache License 2.0
16 stars 9 forks source link

Failure to build for Python 3.11 #32

Open terraflops1048576 opened 2 months ago

terraflops1048576 commented 2 months ago

Hi, I'm trying to build this for Python 3.11. I would much rather have a wheel for amd64 linux, but I see that the wheels on PyPI are very outdated (no 3.9, 3.10, 3.11, 3.12).

I cloned the repository, installed bazelisk, and ran: bazel build --verbose_failures //pygloo:all

only to get the errors:

-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Enabling sccache for CXX
-- Enabling sccache for C
-- Gloo build as STATIC library
-- Found hiredis: /home/pwang/.cache/bazel/_bazel_pwang/dd910acb7981bd836359cbca7e775295/sandbox/linux-sandbox/5/execroot/_main/bazel-out/k8-fastbuild/bin/pygloo/gloo.ext_build_deps/hiredis/include/hiredis
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pwang/.cache/bazel/_bazel_pwang/dd910acb7981bd836359cbca7e775295/sandbox/linux-sandbox/5/execroot/_main/bazel-out/k8-fastbuild/bin/pygloo/gloo.build_tmpdir
Scanning dependencies of target gloo
[  2%] Building CXX object gloo/CMakeFiles/gloo.dir/algorithm.cc.o
Error: While checking $HOME

Caused by:
    environment variable not found
make[2]: *** [gloo/CMakeFiles/gloo.dir/build.make:82: gloo/CMakeFiles/gloo.dir/algorithm.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:235: gloo/CMakeFiles/gloo.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
n_____Printing#!/usr/bin/env bash
function symlink_to_dir() {
local target="$2"
mkdir -p "$target"
if [[ -f "$1" ]]; then
ln -s -f -t "$target" "$1"
elif [[ -L "$1" && ! -d "$1" ]]; then
cp "$1" "$2"
elif [[ -d "$1" ]]; then
SAVEIFS=$IFS
IFS=$'

I know nothing about Bazel, but this appears to be some sandboxing issue where $HOME is not propagated. I'm not sure why it requires it. In any case, there are no wheels for Python 3.11, and this does not appear to build out-of-the-box.

And just for completeness, pip install pygloo gives the error:

ERROR: Could not find a version that satisfies the requirement pygloo (from versions: none)
ERROR: No matching distribution found for pygloo