drprojects / point_geometric_features

Python wrapper around C++ utility to compute local geometric features of a point cloud
MIT License
55 stars 5 forks source link

Installation failed due to "Failed building wheel for pgeof" #14

Closed noisyneighbour closed 5 months ago

noisyneighbour commented 5 months ago

I am running into trouble installing the library using pip. It looks like an issue with the nanobind library. The last time I installed pgeof it went fine (a couple of months ago). The installation ends with:

Failed to build pgeof ERROR: Could not build wheels for pgeof, which is required to install pyproject.toml-based projects

Full log trace python -m pip install pgeof Collecting pgeof Downloading pgeof-0.2.0.tar.gz (69.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 69.0/69.0 MB 7.0 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Collecting numpy<2,>=1.7 (from pgeof) Using cached numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB) Using cached numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB) Building wheels for collected packages: pgeof Building wheel for pgeof (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for pgeof (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [110 lines of output] *** scikit-build-core 0.9.4 using CMake 3.27.7 (wheel) *** Configuring CMake... 2024-05-31 11:06:57,601 - scikit_build_core - WARNING - Can't find a Python library, got libdir=/home/matic/anaconda3/envs/test-env/lib, ldlibrary=libpython3.8.a, multiarch=x86_64-linux-gnu, masd=None loading initial cache file build/cp38-cp38-linux_x86_64/CMakeInit.txt -- The C compiler identification is GNU 9.4.0 -- The CXX compiler identification is GNU 9.4.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Python: /home/matic/anaconda3/envs/test-env/bin/python (found suitable version "3.8.19", minimum required is "3.8") found components: Interpreter Development.Module -- Configuring done (0.4s) -- Generating done (0.0s) -- Build files have been written to: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/build/cp38-cp38-linux_x86_64 *** Building project with Ninja... [1/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/nb_static_property.cpp.o [2/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/implicit.cpp.o [3/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/trampoline.cpp.o [4/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/nb_internals.cpp.o [5/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/error.cpp.o [6/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/nb_ndarray.cpp.o [7/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/common.cpp.o [8/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/nb_enum.cpp.o [9/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/nb_func.cpp.o [10/13] Building CXX object CMakeFiles/nanobind-static.dir/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/src/nb_type.cpp.o [11/13] Linking CXX static library libnanobind-static.a [12/13] Building CXX object CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o FAILED: CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o /usr/bin/c++ -Dpgeof_ext_EXPORTS -I/tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include -I/tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/third_party/eigen -I/tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/third_party/nanoflann/include -I/tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/third_party/taskflow -I/home/matic/anaconda3/envs/test-env/include/python3.8 -I/tmp/pip-build-env-34w23q9k/overlay/lib/python3.8/site-packages/nanobind/include -O3 -DNDEBUG -std=gnu++17 -flto -fno-fat-lto-objects -fPIC -fvisibility=hidden -fno-stack-protector -ffunction-sections -fdata-sections -MD -MT CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o -MF CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o.d -o CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o -c /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/src/pgeof_ext.cpp In file included from /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/src/pgeof_ext.cpp:8: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:76:58: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 76 | static nb::ndarray> compute_geometric_features( | ^~~~~~~~~~~~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:76:58: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:76:71: error: template argument 3 is invalid 76 | static nb::ndarray> compute_geometric_features( | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: In function ‘int pgeof::compute_geometric_features(pgeof::RefCloud, nanobind::ndarray >, nanobind::ndarray >, size_t, bool)’: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:114:62: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 114 | return nb::ndarray>(features, 2, shape, owner_features); | ^~~~~~~~~~~~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:114:62: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:114:75: error: template argument 3 is invalid 114 | return nb::ndarray>(features, 2, shape, owner_features); | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: At global scope: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:158:67: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 158 | static nb::ndarray> compute_geometric_features_multiscale( | ^~~~~~~~~~~~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:158:67: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:158:67: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:158:67: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:158:80: error: template argument 3 is invalid 158 | static nb::ndarray> compute_geometric_features_multiscale( | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: In function ‘int pgeof::compute_geometric_features_multiscale(pgeof::RefCloud, nanobind::ndarray >, nanobind::ndarray >, const std::vector&, bool)’: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:206:71: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 206 | return nb::ndarray>( | ^~~~~~~~~~~~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:206:71: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:206:71: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:206:71: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:206:84: error: template argument 3 is invalid 206 | return nb::ndarray>( | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: At global scope: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:241:58: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 241 | static nb::ndarray> compute_geometric_features_optimal( | ^~~~~~~~~~~~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:241:58: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:241:71: error: template argument 3 is invalid 241 | static nb::ndarray> compute_geometric_features_optimal( | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: In function ‘int pgeof::compute_geometric_features_optimal(pgeof::RefCloud, nanobind::ndarray >, nanobind::ndarray >, uint32_t, uint32_t, uint32_t, bool)’: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:303:62: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 303 | return nb::ndarray>(features, 2, shape, owner_features); | ^~~~~~~~~~~~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:303:62: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:303:75: error: template argument 3 is invalid 303 | return nb::ndarray>(features, 2, shape, owner_features); | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: At global scope: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:320:62: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 320 | static nb::ndarray> compute_geometric_features_selected( | ^~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:320:62: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:320:62: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:320:62: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:320:65: error: template argument 3 is invalid 320 | static nb::ndarray> compute_geometric_features_selected( | ^~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp: In function ‘int pgeof::compute_geometric_features_selected(pgeof::RefCloud, real_t, uint32_t, const std::vector&)’: /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:367:66: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ 367 | return nb::ndarray>(features, {static_cast(n_points), feature_count}, owner_features); | ^~~ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:367:66: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:367:66: error: type/value mismatch at argument 1 in template parameter list for ‘template struct nanobind::shape’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:367:66: note: expected a constant of type ‘long int’, got ‘nanobind::any’ /tmp/pip-install-i_isslon/pgeof_16416ab81e6a4431b1b2dc0f09770a72/include/pgeof.hpp:367:69: error: template argument 3 is invalid 367 | return nb::ndarray>(features, {static_cast(n_points), feature_count}, owner_features); | ^~ ninja: build stopped: subcommand failed. *** CMake build failed [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for pgeof Failed to build pgeof ERROR: Could not build wheels for pgeof, which is required to install pyproject.toml-based projects

I tried installing inside a fresh conda environment using python3.8 and 3.9, both unsuccessful. Installation using install.sh inside the SPT repo also failed with the same error. Googling I found it could also be an issue with non-upgraded pip, wheel, but trying that didn't fix my issue.

I am using Ubuntu 20.04.4 LTS, CUDA Version 12.4

Conda list of the fresh python3.9 conda environment # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge bzip2 1.0.8 hd590300_5 conda-forge ca-certificates 2024.2.2 hbcca054_0 conda-forge ld_impl_linux-64 2.40 hf3520f5_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 13.2.0 h77fa898_7 conda-forge libgomp 13.2.0 h77fa898_7 conda-forge libnsl 2.0.1 hd590300_0 conda-forge libsqlite 3.45.3 h2797004_0 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge libxcrypt 4.4.36 hd590300_1 conda-forge libzlib 1.2.13 h4ab18f5_6 conda-forge ncurses 6.5 h59595ed_0 conda-forge openssl 3.3.0 h4ab18f5_3 conda-forge pip 24.0 pyhd8ed1ab_0 conda-forge python 3.9.19 h0755675_0_cpython conda-forge readline 8.2 h8228510_1 conda-forge setuptools 70.0.0 pyhd8ed1ab_0 conda-forge tk 8.6.13 noxft_h4845f30_101 conda-forge tzdata 2024a h0c530f3_0 conda-forge wheel 0.43.0 pyhd8ed1ab_1 conda-forge xz 5.2.6 h166bdaf_0 conda-forge

Any help is appreciated!

vin858 commented 5 months ago

Hi @drprojects , I also have the same issue when installing point geometric features in superpoint transformer.

Collecting git+https://github.com/drprojects/point_geometric_features.git Cloning https://github.com/drprojects/point_geometric_features.git to /tmp/pip-req-build-x05q6kos Running command git clone --filter=blob:none --quiet https://github.com/drprojects/point_geometric_features.git /tmp/pip-req-build-x05q6kos Resolved https://github.com/drprojects/point_geometric_features.git to commit 255bbc014f6e2b3d11d34dc149bdc5bd5ec3734f Running command git submodule update --init --recursive -q Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: numpy<2,>=1.7 in /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages (from pgeof==0.2.0) (1.22.4) Building wheels for collected packages: pgeof Building wheel for pgeof (pyproject.toml) ... error error: subprocess-exited-with-error

× Building wheel for pgeof (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [279 lines of output] scikit-build-core 0.9.5 using CMake 3.29.3 (wheel) Configuring CMake... 2024-06-02 10:12:37,196 - scikit_build_core - WARNING - Can't find a Python library, got libdir=/home/vaibhav/conda3v2/envs/superpoint/lib, ldlibrary=libpython3.8.a, multiarch=x86_64-linux-gnu, masd=None loading initial cache file build/cp38-cp38-linux_x86_64/CMakeInit.txt -- The C compiler identification is GNU 9.4.0 -- The CXX compiler identification is GNU 9.4.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Python: /home/vaibhav/conda3v2/envs/superpoint/bin/python3.8 (found suitable version "3.8.19", minimum required is "3.8") found components: Interpreter Development.Module -- Configuring done (0.7s) -- Generating done (0.0s) -- Build files have been written to: /tmp/pip-req-build-x05q6kos/build/cp38-cp38-linux_x86_64 ** Building project with Ninja... [1/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/trampoline.cpp.o [2/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/implicit.cpp.o [3/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_enum.cpp.o [4/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_internals.cpp.o [5/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/error.cpp.o [6/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_ndarray.cpp.o [7/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/common.cpp.o [8/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_func.cpp.o [9/12] Building CXX object CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_type.cpp.o [10/12] Linking CXX static library libnanobind-static.a [11/12] Building CXX object CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o FAILED: CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o /usr/bin/c++ -Dpgeof_ext_EXPORTS -I/tmp/pip-req-build-x05q6kos/include -I/tmp/pip-req-build-x05q6kos/third_party/eigen -I/tmp/pip-req-build-x05q6kos/third_party/nanoflann/include -I/tmp/pip-req-build-x05q6kos/third_party/taskflow -I/home/vaibhav/conda3v2/envs/superpoint/include/python3.8 -I/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include -O3 -DNDEBUG -std=gnu++17 -flto -fno-fat-lto-objects -fPIC -fvisibility=hidden -fno-stack-protector -MD -MT CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o -MF CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o.d -o CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o -c /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:7: /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:55: error: ‘ndim’ is not a member of ‘nb’ 32 | static std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^~~~ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:60: error: template argument 3 is invalid 32 | static std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:61: error: wrong number of template arguments (1, should be 2) 32 | static std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^~ In file included from /usr/include/c++/9/bits/stl_algobase.h:64, from /usr/include/c++/9/bits/char_traits.h:39, from /usr/include/c++/9/string:40, from /usr/include/c++/9/stdexcept:39, from /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nanobind.h:31, from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:2: /usr/include/c++/9/bits/stl_pair.h:208:12: note: provided for ‘template<class _T1, class _T2> struct std::pair’ 208 | struct pair | ^~~~ In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:7: /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:63: error: expected unqualified-id before ‘,’ token 32 | static std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:54: error: ‘ndim’ is not a member of ‘nb’ 86 | static std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^~~~ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:59: error: template argument 3 is invalid 86 | static std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:60: error: wrong number of template arguments (1, should be 2) 86 | static std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^~ In file included from /usr/include/c++/9/bits/stl_algobase.h:64, from /usr/include/c++/9/bits/char_traits.h:39, from /usr/include/c++/9/string:40, from /usr/include/c++/9/stdexcept:39, from /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nanobind.h:31, from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:2: /usr/include/c++/9/bits/stl_pair.h:208:12: note: provided for ‘template<class _T1, class _T2> struct std::pair’ 208 | struct pair | ^~~~ In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:7: /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:62: error: expected unqualified-id before ‘,’ token 86 | static std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:8: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:77:59: error: ‘ndim’ is not a member of ‘nb’ 77 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:77:64: error: template argument 2 is invalid 77 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:77:65: error: expected ‘,’ or ‘...’ before ‘>’ token 77 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In function ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features(pgeof::RefCloud, int)’: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:80:9: error: ‘k_min’ was not declared in this scope 80 | if (k_min < 1) { throw std::invalid_argument("k_min should be > 1"); } | ^~~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:82:35: error: ‘nn_ptr’ was not declared in this scope 82 | const size_t n_points = nn_ptr.size() - 1; // number of points is not determined by xyz | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:84:35: error: ‘nn’ was not declared in this scope; did you mean ‘nb’? 84 | const uint32_t nn_data = nn.data(); | ^~ | nb /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In lambda function: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:96:17: error: ‘verbose’ was not declared in this scope 96 | if (verbose) log::progress(s_point, n_points); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:102:25: error: ‘k_min’ was not declared in this scope 102 | if (k_nn >= k_min) | ^~~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In function ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features(pgeof::RefCloud, int)’: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:112:9: error: ‘verbose’ was not declared in this scope 112 | if (verbose) log::flush(); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: At global scope: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:159:59: error: ‘ndim’ is not a member of ‘nb’ 159 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:159:64: error: template argument 2 is invalid 159 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:159:65: error: expected ‘,’ or ‘...’ before ‘>’ token 159 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In function ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615, feature_count> > pgeof::compute_geometric_features_multiscale(pgeof::RefCloud, int)’: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:162:23: error: ‘k_scales’ was not declared in this scope; did you mean ‘check_scales’? 162 | if (!check_scales(k_scales)) | ^~~~ | check_scales /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:166:35: error: ‘nn_ptr’ was not declared in this scope 166 | const size_t n_points = nn_ptr.size() - 1; // number of points is not determined by xyz | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:167:35: error: ‘k_scales’ was not declared in this scope; did you mean ‘n_scales’? 167 | const size_t n_scales = k_scales.size(); | ^~~~ | n_scales /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:169:35: error: ‘nn’ was not declared in this scope; did you mean ‘nb’? 169 | const uint32_t nn_data = nn.data(); | ^~ | nb /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In lambda function: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:182:17: error: ‘verbose’ was not declared in this scope 182 | if (verbose) log::progress(s_point, n_points); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In function ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615, feature_count> > pgeof::compute_geometric_features_multiscale(pgeof::RefCloud, int)’: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:203:9: error: ‘verbose’ was not declared in this scope 203 | if (verbose) log::flush(); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: At global scope: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:242:59: error: ‘ndim’ is not a member of ‘nb’ 242 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:242:64: error: template argument 2 is invalid 242 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:242:65: error: expected ‘,’ or ‘...’ before ‘>’ token 242 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In function ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features_optimal(pgeof::RefCloud, int)’: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:245:9: error: ‘k_min’ was not declared in this scope 245 | if (k_min < 1 && k_min_search < 1) { throw std::invalid_argument("k_min and k_min_search should be > 1"); } | ^~~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:245:22: error: ‘k_min_search’ was not declared in this scope 245 | if (k_min < 1 && k_min_search < 1) { throw std::invalid_argument("k_min and k_min_search should be > 1"); } | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:247:35: error: ‘nn_ptr’ was not declared in this scope 247 | const size_t n_points = nn_ptr.size() - 1; // number of points is not determined by xyz | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:249:35: error: ‘nn’ was not declared in this scope; did you mean ‘nb’? 249 | const uint32_t nn_data = nn.data(); | ^~ | nb /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In lambda function: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:261:17: error: ‘verbose’ was not declared in this scope 261 | if (verbose) log::progress(s_point, n_points); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:267:25: error: ‘k_min’ was not declared in this scope 267 | if (k_nn >= k_min && k_nn >= k_min_search) | ^~~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:267:42: error: ‘k_min_search’ was not declared in this scope 267 | if (k_nn >= k_min && k_nn >= k_min_search) | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:278:42: error: ‘k_step’ was not declared in this scope 278 | if ((k > k0) && (k % k_step != 0) && (k != k_nn)) { continue; } | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In function ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features_optimal(pgeof::RefCloud, int)’: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:300:9: error: ‘verbose’ was not declared in this scope 300 | if (verbose) log::flush(); | ^~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp: In function ‘void nanobind_init_pgeofext(nanobind::module&)’: /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:119:33: error: ‘nanoflann_knn_search’ is not a member of ‘pgeof’ 119 | m.def("knn_search", &pgeof::nanoflann_knn_search, "data"_a.noconvert(), "query"_a.noconvert(), "knn"_a, R"( | ^~~~~~~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:119:54: error: expected primary-expression before ‘float’ 119 | m.def("knn_search", &pgeof::nanoflann_knn_search, "data"_a.noconvert(), "query"_a.noconvert(), "knn"_a, R"( | ^~~~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:132:34: error: ‘nanoflann_radius_search’ is not a member of ‘pgeof’ 132 | "radius_search", &pgeof::nanoflann_radius_search, "data"_a.noconvert(), "query"_a.noconvert(), | ^~~~~~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:132:58: error: expected primary-expression before ‘float’ 132 | "radius_search", &pgeof::nanoflann_radius_search, "data"_a.noconvert(), "query"_a.noconvert(), | ^~~~~ In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:8: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In instantiation of ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615> > pgeof::compute_geometric_features_selected(pgeof::RefCloud, real_t, uint32_t, const std::vector&) [with real_t = double; pgeof::RefCloud = Eigen::Ref<const Eigen::Matrix<double, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >; typename Eigen::internal::conditional<const Eigen::Matrix<real_t, -1, 3, 1>::IsVectorAtCompileTime, Eigen::InnerStride<1>, Eigen::OuterStride<> >::type = Eigen::OuterStride<>; uint32_t = unsigned int]’: /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:163:11: required from here /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:367:16: error: no matching function for call to ‘nanobind::ndarray<nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615> >::ndarray(double&, , nanobind::capsule&)’ 367 | return nb::ndarray<nb::numpy, real_t, nb::shape<nb::any, nb::any>>(features, {static_cast(n_points), feature_count}, owner_features); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:3: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5: note: candidate: ‘nanobind::ndarray::ndarray(nanobind::ndarray&&) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 273 | ndarray(ndarray &&t) noexcept : m_handle(t.m_handle), m_dltensor(t.m_dltensor) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5: note: candidate expects 1 argument, 3 provided /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: note: candidate: ‘nanobind::ndarray::ndarray(const nanobind::ndarray&) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 269 | ndarray(const ndarray &t) : m_handle(t.m_handle), m_dltensor(t.m_dltensor) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: note: candidate expects 1 argument, 3 provided /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:251:5: note: candidate: ‘nanobind::ndarray::ndarray(void, size_t, const size_t, nanobind::handle, const int64_t, nanobind::dlpack::dtype, int32_t, int32_t) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}; size_t = long unsigned int; int64_t = long int; int32_t = int]’ 251 | ndarray(void value, | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:252:20: note: no known conversion for argument 2 from ‘’ to ‘size_t’ {aka ‘long unsigned int’} 252 | size_t ndim, | ~^~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14: note: candidate: ‘nanobind::ndarray::ndarray(nanobind::detail::ndarray_handle) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 246 | explicit ndarray(detail::ndarray_handle handle) : m_handle(handle) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14: note: candidate expects 1 argument, 3 provided /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5: note: candidate: ‘constexpr nanobind::ndarray::ndarray() [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 244 | ndarray() = default; | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5: note: candidate expects 0 arguments, 3 provided In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:8: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: In instantiation of ‘nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615> > pgeof::compute_geometric_features_selected(pgeof::RefCloud, real_t, uint32_t, const std::vector&) [with real_t = float; pgeof::RefCloud = Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >; typename Eigen::internal::conditional<const Eigen::Matrix<real_t, -1, 3, 1>::IsVectorAtCompileTime, Eigen::InnerStride<1>, Eigen::OuterStride<> >::type = Eigen::OuterStride<>; uint32_t = unsigned int]’: /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:178:11: required from here /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:367:16: error: no matching function for call to ‘nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615> >::ndarray(float&, , nanobind::capsule&)’ 367 | return nb::ndarray<nb::numpy, real_t, nb::shape<nb::any, nb::any>>(features, {static_cast(n_points), feature_count}, owner_features); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:3: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5: note: candidate: ‘nanobind::ndarray::ndarray(nanobind::ndarray&&) [with Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 273 | ndarray(ndarray &&t) noexcept : m_handle(t.m_handle), m_dltensor(t.m_dltensor) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5: note: candidate expects 1 argument, 3 provided /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: note: candidate: ‘nanobind::ndarray::ndarray(const nanobind::ndarray&) [with Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 269 | ndarray(const ndarray &t) : m_handle(t.m_handle), m_dltensor(t.m_dltensor) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: note: candidate expects 1 argument, 3 provided /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:251:5: note: candidate: ‘nanobind::ndarray::ndarray(void, size_t, const size_t, nanobind::handle, const int64_t, nanobind::dlpack::dtype, int32_t, int32_t) [with Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}; size_t = long unsigned int; int64_t = long int; int32_t = int]’ 251 | ndarray(void value, | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:252:20: note: no known conversion for argument 2 from ‘’ to ‘size_t’ {aka ‘long unsigned int’} 252 | size_t ndim, | ~^~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14: note: candidate: ‘nanobind::ndarray::ndarray(nanobind::detail::ndarray_handle) [with Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 246 | explicit ndarray(detail::ndarray_handle handle) : m_handle(handle) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14: note: candidate expects 1 argument, 3 provided /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5: note: candidate: ‘constexpr nanobind::ndarray::ndarray() [with Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}]’ 244 | ndarray() = default; | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5: note: candidate expects 0 arguments, 3 provided In file included from /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nanobind.h:51, from /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:2: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h: In instantiation of ‘PyObject nanobind::detail::func_create(Func&&, Return ()(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> > (&)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, char [1230]}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]’: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:161:37: required from ‘void nanobind::cpp_function_def(Return ()(Args ...), const Extra& ...) [with Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, char [1230]}]’ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:230:21: required from ‘nanobind::module& nanobind::module_::def(const char, Func&&, const Extra& ...) [with Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> > ()(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Extra = {nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, char [1230]}]’ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:59:11: required from here /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:49:39: error: static assertion failed: The number of nb::arg annotations must match the argument count! 49 | static_assert(nargs_provided == 0 || nargs_provided + is_method_det == nargs, | ~~~~^~~~~~~~~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h: In instantiation of ‘PyObject nanobind::detail::func_create(Func&&, Return ()(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> > (&)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, char [1278]}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]’: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:161:37: required from ‘void nanobind::cpp_function_def(Return ()(Args ...), const Extra& ...) [with Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, char [1278]}]’ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:230:21: required from ‘nanobind::module& nanobind::module_::def(const char, Func&&, const Extra& ...) [with Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> > ()(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Extra = {nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, char [1278]}]’ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:86:11: required from here /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:49:39: error: static assertion failed: The number of nb::arg annotations must match the argument count! /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h: In instantiation of ‘PyObject nanobind::detail::func_create(Func&&, Return ()(Args ...), std::index_sequence<Is2 ...>, const Extra& ...) [with bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> > (&)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, char [1705]}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]’: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:161:37: required from ‘void nanobind::cpp_function_def(Return ()(Args ...), const Extra& ...) [with Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, char [1705]}]’ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:230:21: required from ‘nanobind::module& nanobind::module_::def(const char, Func&&, const Extra& ...) [with Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> > ()(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Extra = {nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, char [1705]}]’ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:118:11: required from here /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:49:39: error: static assertion failed: The number of nb::arg annotations must match the argument count! ninja: build stopped: subcommand failed.

  *** CMake build failed
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for pgeof Failed to build pgeof ERROR: Could not build wheels for pgeof, which is required to install pyproject.toml-based projects

I am using Ubuntu 20.04 and Cuda 11.8. Also, it is same case as @noisyneighbour. Last time it went fine, but this time, getting this issue. Please have a look. Thankyou for considering.

drprojects commented 5 months ago

@rjanvier do you maybe have an idea of why this error appeared ?

rjanvier commented 5 months ago

Yes it's because nanobind 2.0.0 is out and it has minor breaking changes in the API. for now I just pin the version of nanobind. I will integrate migration to nb 2.0.0 in a future 0.3.0 version.

drprojects commented 5 months ago

@noisyneighbour @vin858 can you please try again with the latest version of pgeof ?

vin858 commented 5 months ago

yes, @drprojects, All good now; thanks for the quick assist!

drprojects commented 5 months ago

Mostly thank @rjanvier for the quick fix

noisyneighbour commented 5 months ago

I can confirm the issue is resolved. Thanks!

Avril-Dragon commented 3 months ago

你好@drprojects, 在超点变压器中安装点几何特征时我也遇到了同样的问题。

收集 git+ https://github.com/drprojects/point_geometric_features.git 将https://github.com/drprojects/point_geometric_features.git克隆到 /tmp/pip-req-build-x05q6kos 运行命令 git clone --filter=blob:none --quiet https://github.com/drprojects/point_geometric_features.git /tmp/pip-req-build-x05q6kos 已解决https://github.com/drprojects/point_geometric_features.git以提交255bbc0 运行命令 git submodule update --init --recursive -q 安装构建依赖项...完成 获取构建 wheel 的要求...完成 安装后端依赖项...完成 准备元数据(pyproject.toml)...完成 要求已满足:numpy<2,>=1.7 in /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages(来自 pgeof==0.2.0)(1.22.4) 为收集的软件包构建轮子:pgeof 为 pgeof 构建轮子(pyproject.toml)...错误 错误:子进程退出并出现错误

× 为 pgeof(pyproject.toml)构建轮子未能成功运行。 │ 退出代码:1 ╰─> [279 行输出] scikit-build-core 0.9.5 使用 CMake 3.29.3(wheel) 正在配置 CMake…… 2024-06-02 10:12:37,196 - scikit_build_core - 警告 - 找不到 Python 库,得到 libdir=/home/vaibhav/conda3v2/envs/superpoint/lib、ldlibrary=libpython3.8.a、multiarch=x86_64-linux-gnu、masd=None 正在加载初始缓存文件 build/cp38-cp38-linux_x86_64/CMakeInit.txt -- C 编译器标识为 GNU 9.4.0 -- CXX 编译器标识为 GNU 9.4.0 -- 检测 C 编译器 ABI 信息 -- 检测 C 编译器 ABI 信息 - 完成 -- 检查用于工作的 C 编译器:/usr/bin/cc - 已跳过 -- 检测 C 编译功能 -- 检测 C 编译功能 - 完成 -- 检测 CXX 编译器 ABI 信息 -- 检测 CXX 编译器 ABI 信息 - 完成 -- 检查工作的 CXX 编译器:/usr/bin/c++ - 已跳过 -- 检测 CXX 编译功能 -- 检测 CXX 编译功能 - 完成 -- 找到 Python:/home/vaibhav/conda3v2/envs/superpoint/bin/python3.8(找到合适的版本“3.8.19”,最低要求为“3.8”)找到组件:Interpreter Development.Module -- 配置完成(0.7 秒) -- 生成完成(0.0 秒) -- 构建文件已写入:/tmp/pip-req-build-x05q6kos/build/cp38-cp38-linux_x86_64 ** 使用 Ninja 构建项目... [1/12] 构建 CXX 对象CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/trampoline.cpp.o [2/12] 构建 CXX 对象 CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/implicit.cpp.o [3/12] 构建 CXX 对象 CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_enum.cpp.o [4/12] 构建 CXX 对象CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_internals.cpp.o [5/12] 构建 CXX 对象 CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/error.cpp.o [6/12] 构建 CXX 对象 CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_ndarray.cpp.o [7/12] 构建 CXX 对象CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/common.cpp.o [8/12] 构建 CXX 对象 CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_func.cpp.o [9/12] 构建 CXX 对象 CMakeFiles/nanobind-static.dir/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/src/nb_type.cpp.o [10/12] 链接 CXX 静态库 libnanobind-static.a [11/12] 构建 CXX 对象 CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o 失败:CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o /usr/bin/c++ -Dpgeof_ext_EXPORTS -I/tmp/pip-req-build-x05q6kos/include -I/tmp/pip-req-build-x05q6kos/third_party/eigen -I/tmp/pip-req-build-x05q6kos/third_party/nanoflann/include -I/tmp/pip-req-build-x05q6kos/third_party/taskflow -I/home/vaibhav/conda3v2/envs/superpoint/include/python3.8 -I/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include -O3 -DNDEBUG -std=gnu++17 -flto -fno-fat-lto-objects -fPIC -fvisibility=hidden -fno-stack-protector -MD -MT CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o -MF CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.od -o CMakeFiles/pgeof_ext.dir/src/pgeof_ext.cpp.o -c /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:7 包含的文件中: /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:55: 错误:'ndim' 不是'nb' 的成员 32 | static std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^~ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:60: 错误:模板参数 3 无效 32 | static std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:61: 错误:模板参数数量错误(1,应该是 2) 32 |静态 std::pair<nb::ndarray<nb::numpy,uint32_t,nb::ndim<2>>,nb::ndarray<nb::numpy,real_t,nb::ndim<2>>> | ^~ 在包含的文件中来自 /usr/include/c++/9/bits/stl_algobase.h:64、 来自 /usr/include/c++/9/bits/char_traits.h:39、 来自 /usr/include/c++/9/string:40、 来自 /usr/include/c++/9/stdexcept:39、 来自 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nanobind.h:31、来自 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:2: /usr/include/c++/9/bits/stl_pair.h:208:12: 注意:为'template<class _T1, class _T2> struct 提供std::pair' 208 | struct pair | ^~ 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:7 包含的文件中: /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:32:63: 错误:在 ',' 标记之前预期未限定的 ID 32 | 静态 std::pair<nb::ndarray<nb::numpy, uint32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:54: 错误:'ndim'不是'nb'的成员 86 | 静态 std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^~ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:59: 错误:模板参数 3 无效 86 | static std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:60: 错误:模板参数数量错误(1,应该是 2) 86 |静态 std::pair<nb::ndarray<nb::numpy,int32_t,nb::ndim<2>>,nb::ndarray<nb::numpy,real_t,nb::ndim<2>>> | ^~ 在包含的文件中来自 /usr/include/c++/9/bits/stl_algobase.h:64、 来自 /usr/include/c++/9/bits/char_traits.h:39、 来自 /usr/include/c++/9/string:40、 来自 /usr/include/c++/9/stdexcept:39、 来自 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nanobind.h:31、来自 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:2: /usr/include/c++/9/bits/stl_pair.h:208:12: 注意:为'template<class _T1, class _T2> struct提供std::pair' 208 | struct pair | ^~ 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:7 包含的文件中: /tmp/pip-req-build-x05q6kos/include/nn_search.hpp:86:62: 错误:在 ',' 标记 86 之前预期未限定 id | static std::pair<nb::ndarray<nb::numpy, int32_t, nb::ndim<2>>, nb::ndarray<nb::numpy, real_t, nb::ndim<2>>> | ^ 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:8 包含的文件中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:77:59: 错误:'ndim' 不是 'nb' 的成员 77 | RefCloud xyz,nb::ndarray<const uint32_t, nb::ndim<1>> nn,nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:77:64: 错误:模板参数 2 无效 77 | RefCloud xyz,nb::ndarray<const uint32_t,nb::ndim<1>> nn,nb::ndarray<const uint32_t,nb::ndim<1>> nn_ptr, | ^ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:77:65: 错误:在‘>’标记 77 之前预期‘,’或‘...’ | RefCloud xyz,nb::ndarray<const uint32_t, nb::ndim<1>> nn,nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: 在函数“nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features(pgeof::RefCloud, int)”中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:80:9: 错误:未在此范围内声明“k_min” 80 | if (k_min < 1) {抛出 std::invalid_argument("k_min 应该 > 1"); } | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:82:35: 错误:此范围内未声明“nn_ptr” 82 | const size_t n_points = nn_ptr.size() - 1; // 点数不由 xyz 决定 | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:84:35: 错误:此范围内未声明“nn”;您的意思是“nb”吗? 84 | const uint32_t nn_data = nn.data(); | ^~ | nb /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在 lambda 函数中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:96:17:错误:此范围内未声明“verbose” 96 | if (verbose) log::progress(s_point, n_points); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:102:25:错误:此范围内未声明“k_min” 102 | if (k_nn >= k_min) | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在函数“nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features(pgeof::RefCloud, int)”中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:112:9:错误:未在此范围内声明“verbose” 112 | if (verbose) log::flush(); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在全局范围内: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:159:59:错误:'ndim'不是'nb'的成员 159 | RefCloud xyz,nb::ndarray<const uint32_t, nb::ndim<1>> nn,nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:159:64:错误:模板参数 2 无效 159 | RefCloud xyz,nb::ndarray<const uint32_t,nb::ndim<1>> nn,nb::ndarray<const uint32_t,nb::ndim<1>> nn_ptr, | ^ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:159:65: 错误:在‘>’标记 159 之前预期‘,’或‘...’ | RefCloud xyz,nb::ndarray<const uint32_t,nb::ndim<1>> nn,nb::ndarray<const uint32_t,nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: 在函数“nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615, feature_count> > pgeof::compute_geometric_features_multiscale(pgeof::RefCloud, int)”中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:162:23: 错误:未在此范围内声明“k_scales”;您的意思是“check_scales”吗? 162 | if (!check_scales(k_scales)) | ^~~~ | check_scales /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:166:35: 错误:此范围内未声明“nn_ptr” 166 | const size_t n_points = nn_ptr.size() - 1; // 点数不由 xyz 决定 | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:167:35: 错误:此范围内未声明“k_scales”;您的意思是“n_scales”吗? 167 | const size_t n_scales = k_scales.size(); | ^~~~ | n_scales /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:169:35: 错误:此范围内未声明“nn”;您的意思是“nb”吗? 169 | const uint32_t nn_data = nn.data(); | ^~ | nb /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: 在 lambda 函数中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:182:17: 错误:未在此范围内声明“verbose” 182 | if (verbose) log::progress(s_point, n_points); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在函数“nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615, feature_count> > pgeof::compute_geometric_features_multiscale(pgeof::RefCloud, int)”中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:203:9:错误:未在此范围内声明“verbose” 203 | if (verbose) log::flush(); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在全局范围内: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:242:59:错误:'ndim'不是'nb'的成员 242 | RefCloud xyz,nb::ndarray<const uint32_t,nb::ndim<1>> nn,nb::ndarray <const uint32_t, nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:242:64: 错误:模板参数 2 无效 242 | RefCloud xyz, nb::ndarray<const uint32_t, nb::ndim<1>> nn, nb::ndarray<const uint32_t, nb::ndim<1>> nn_ptr, | ^ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:242:65: 错误:在“>”标记之前应有“,”或“...” 242 | RefCloud xyz,nb::ndarray<const uint32_t,nb::ndim<1>> nn,nb::ndarray<const uint32_t,nb::ndim<1>> nn_ptr, | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: 在函数“nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features_optimal(pgeof::RefCloud, int)”中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:245:9: 错误:未在此范围内声明“k_min” 245 | if (k_min < 1 && k_min_search < 1) {抛出 std::invalid_argument("k_min and k_min_search should be > 1"); } | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:245:22: 错误:此范围内未声明“k_min_search” 245 | if (k_min < 1 && k_min_search < 1) { throw std::invalid_argument("k_min and k_min_search should be > 1"); } | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:247:35: 错误:此范围内未声明“nn_ptr” 247 | const size_t n_points = nn_ptr.size() - 1; // 点数不由 xyz 决定 | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:249:35: 错误:此范围内未声明“nn”;您的意思是“nb”吗? 249 | const uint32_t nn_data = nn.data(); | ^~ | nb /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在 lambda 函数中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:261:17: 错误:此范围内未声明“verbose” 261 | if (verbose) log::progress(s_point, n_points); | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:267:25: 错误:'k_min' 未在此范围内声明 267 | if (k_nn >= k_min && k_nn >= k_min_search) | ^~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:267:42: 错误:'k_min_search' 未在此范围内声明 267 | if (k_nn >= k_min && k_nn >= k_min_search) | ^~~~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:278:42: 错误:'k_step' 未在此范围内声明 278 | if ((k > k0) && (k % k_step != 0) && (k != k_nn)) { continue; } | ^~ /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在函数“nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, feature_count> > pgeof::compute_geometric_features_optimal(pgeof::RefCloud, int)”中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:300:9:错误:此范围内未声明“verbose” 300 | if (verbose) log::flush(); | ^~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp: 在函数“void nanobind_init_pgeofext(nanobind::module &)”中: /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:119:33: 错误:“nanoflann_knn_search”不是“pgeof”的成员 119 | m.def("knn_search", &pgeof::nanoflann_knn_search, "data"_a.noconvert(), "query"_a.noconvert(), "knn"_a, R"( | ^~~~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:119:54: 错误:'float' 之前预期主表达式 119 | m.def("knn_search", &pgeof::nanoflann_knn_search, "data"_a.noconvert(), "query"_a.noconvert(), "knn"_a, R"( | ^~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:132:34: 错误:'nanoflann_radius_search' 不是成员'pgeof' 的 132 | “radius_search”, &pgeof::nanoflann_radius_search, “data”_a.noconvert(), “query” _a.noconvert(), | ^~~~~~~ /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:132:58: 错误:'float' 之前预期主表达式 132 | “radius_search”, &pgeof::nanoflann_radius_search, “data” _a.noconvert(), “query” _a.noconvert(), | ^~~ 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:8 包含的文件中: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:在实例化中'nanobind::ndarray<nanobind::numpy, real_t, nanobind::shape<18446744073709551615, 18446744073709551615> > pgeof::compute_geometric_features_selected(pgeof::RefCloud, real_t, uint32_t, const std::vectorpgeof::EFeatureID&) [其中 real_t = double; pgeof::RefCloud = Eigen::Ref<const Eigen::Matrix<double, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >;类型名称 Eigen::internal::conditional<const Eigen::Matrix<real_t, -1, 3, 1>::IsVectorAtCompileTime,Eigen::InnerStride<1>,Eigen::OuterStride<> >::type = Eigen::OuterStride<>; uint32_t = unsigned int]': /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:163:11: 从这里开始需要 /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:367:16: 错误:没有匹配的函数来调用“nanobind::ndarray<nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615> >::ndarray(double*&, , nanobind::capsule&)” 367 | 返回 nb::ndarray<nb::numpy, real_t, nb::shape<nb::any, nb::any>>(features, {static_cast(n_points), feature_count},owner_features); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 在来自 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:3 的文件中: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5: 注意:候选:'nanobind::ndarray::ndarray(nanobind::ndarray&&) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}]' 273 | ndarray (ndarray &&t) noexcept : m_handle (t.m_handle),m_dltensor (t.m_dltensor) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5: 注意:候选需要 1 个参数,提供了 3 个 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: 注意:候选:'nanobind::ndarray::ndarray(const nanobind::ndarray&) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}]' 269 | ndarray (const ndarray &t) :m_handle (t.m_handle),m_dltensor (t.m_dltensor) { | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: 注意:候选需要 1 个参数,提供了 3 个 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:251:5: 注意:候选:'nanobind::ndarray::ndarray(void, size_t, const size_t, nanobind::handle, const int64_t, nanobind::dlpack::dtype, int32_t, int32_t) [with Args = {nanobind::numpy, double, nanobind::shape<18446744073709551615, 18446744073709551615>}; size_t = long unsigned int; int64_t = long int; int32_t = int]' 251 | ndarray(void_值, | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:252:20: 注意:没有已知的将参数 2 从 '' 转换为 'size_t' {又名 'long unsigned int'} 252 | size_t ndim, | ~^~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14: 注意:候选:'nanobind::ndarray::ndarray(nanobind::detail::ndarrayhandle ) [带有 Args = {nanobind::numpy, double, nanobind::形状<18446744073709551615,18446744073709551615>}]' 246 |显式 ndarray(detail::ndarray_handle_句柄):m_handle(句柄){ | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14:注意:候选需要 1 个参数,3提供 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5: 注意:候选:'constexpr nanobind::ndarray::ndarray( )[带有 Args = {nanobind::numpy,double,nanobind::shape<18446744073709551615, 18446744073709551615>}]' 244 | ndarray() = default; | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5: 注意:候选需要 0 个参数,3 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:8 包含的文件中提供: /tmp/pip-req-build-x05q6kos/include/pgeof.hpp: 在'nanobind::ndarray< 的实例化中纳米绑定::numpy,real_t,纳米绑定::形状<18446744073709551615,18446744073709551615> > pgeof::compute_geometric_features_selected(pgeof::RefCloud, real_t, uint32_t, const std::vectorpgeof::EFeatureID&) [其中 real_t = float; pgeof::RefCloud = Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >;类型名称 Eigen::internal::conditional<const Eigen::Matrix<real_t, -1, 3, 1>::IsVectorAtCompileTime, Eigen::InnerStride<1>, Eigen::OuterStride<> >::type = Eigen::外步<>; uint32_t = unsigned int]': /tmp/pip-req-build-x05q6kos/src/pgeofext.cpp:178:11:从这里需要 /tmp/pip-req-build-x05q6kos/include/pgeof.hpp:367: 16:错误:没有匹配的函数来调用‘nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615> >::ndarray(float &, , nanobind::capsule&)’ 367 |返回 nb::ndarray<nb::numpy, real_t, nb::shape<nb::any, nb::any>>(features, {static_cast(n_points), feature_count}, Owner_features); | ^~~~~~~~~~~~~ ~~~~~~~~~~~~ ~~~~~~~~ 在从 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp 包含的文件中: 3: /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:273:5:注意:候选:'nanobind::ndarray::ndarray( nanobind::ndarray&&) [带有 Args = {nanobind::numpy,float,nanobind::shape<18446744073709551615, 18446744073709551615>}]' 273 | ndarray(ndarray &&t)noexcept:m_handle(t.m_handle),m_dltensor(t.m_dltensor){ | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3 .8/site-packages/nanobind/include/nanobind/ndarray.h:273:5:注意:候选人期望 1 个参数,提供 3 个 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: 注意:候选:'nanobind::ndarray::ndarray(const nanobind::ndarray&)[带有 Args = {nanobind::numpy,float,nanobind::shape<18446744073709551615, 18446744073709551615>}]' 269 | ndarray(const ndarray &t):m_handle(t.m_handle),m_dltensor(t.m_dltensor){ | ^~~~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:269:5: 注意:候选需要 1 个参数,提供了 3 个 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:251:5: 注意:候选:'nanobind::ndarray::ndarray(void, size_t, const size_t, nanobind::handle, const int64_t, nanobind::dlpack::dtype, int32_t, int32_t) [with Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}; size_t = long unsigned int; int64_t = long int; int32_t = int]' 251 | ndarray(void_值, | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:252:20: 注意:没有已知的将参数 2 从 '' 转换为 'size_t' {又名 'long unsigned int'} 252 | size_t ndim, | ~^~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14: 注意:候选:'nanobind::ndarray::ndarray(nanobind::detail::ndarrayhandle ) [带有 Args = {nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615>}]' 246 | 显式 ndarray(detail::ndarray_handle _handle):m_handle(handle){ | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:246:14:注意:候选需要 1 个参数,提供 3 个 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5:注意:候选:'constexpr nanobind::ndarray::ndarray() [带有 Args = {nanobind::numpy,float,nanobind::shape<18446744073709551615,18446744073709551615>}]' 244 | ndarray() = default; | ^~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/ndarray.h:244:5:注意:候选需要 0 个参数, 在文件中提供了 3 个来自 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nanobind.h:51, 来自 /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:2:/home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h :在“PyObject nanobind::detail::funccreate(Func&&,返回()(Args ...), std::indexsequence<Is2 ...>, const Extra& ...) [带有 bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> > ( &)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, char [1230]}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]': /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:161:37: 来自'void nanobind::cpp_function_def(Return ()(Args ...), const Extra& ...) [with Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, char [1230]}]' /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:230:21: 来自'nanobind::module & nanobind::module_ ::def(const char, Func&&, const Extra& ...) 所需 [带有 Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 11> > (_ )(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Extra = {nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, char [1230]}]' /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:59:11: 从这里需要 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:49:39: 错误:静态断言失败:nb::arg 注释的数量必须与参数数量匹配! 49 | static_assert(nargs_provided == 0 || nargs_provided + is_method_det == nargs, | ~~~~^~~~~~~~~~~ /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h: 在实例化'PyObject nanobind::detail::funccreate(Func&&, Return ( )(Args ...), std::indexsequence<Is2 ...>, const Extra& ...) [带有 bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615,18446744073709551615, 11>> (&)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; long unsigned int ...Is = {0, 1}; Extra = {nanobind::scope,nanobind::name,nanobind::arg,nanobind::arg,nanobind::arg,nanobind::arg,nanobind::arg_v,char [1278]}; PyObject = _object; std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]': /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:161:37: 来自'void nanobind::cpp_function_def(Return ()(Args ...), const Extra& ...) [with Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, char [1278]}]' /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:230:21: 来自'nanobind::module & nanobind::module_ ::def(const char, Func&&, const Extra& ...) 所需 [带有 Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 18446744073709551615, 11> > ( _)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Extra = {nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, char [1278]}]' /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:86:11: 从这里需要 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:49:39: 错误:静态断言失败:nb::arg 注释的数量必须与参数数量匹配! /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:在“PyObject nanobind::detail::funccreate(Func&&, Return ( )(Args ...), std::indexsequence<Is2 ...>, const Extra& ...) 的实例化中 [带有 bool ReturnRef = false; bool CheckGuard = true; Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> > ( &)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int);返回 = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> >; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; long unsigned int...Is = {0, 1}; Extra = {nanobind::scope, nanobind::name, nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, char [1705]}; PyObject =_对象;std::index_sequence<Is2 ...> = std::integer_sequence<long unsigned int, 0, 1>]': /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nb_func.h:161:37:来自'void nanobind::cpp_function_def(Return ()(Args ...), const Extra& ...) [with Return = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12>>; Args = {Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<-1> >, int}; Extra = {nanobind::scope、nanobind::name、nanobind::arg、nanobind::arg、nanobind::arg、nanobind::arg_v、nanobind::arg_v、nanobind::arg_v、nanobind::arg_v、char [1705]}]' /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:230:21: 来自'nanobind::module & nanobind::module::def(const char, Func&&, const Extra& ...) 所需 [带有 Func = nanobind::ndarray<nanobind::numpy, float, nanobind::shape<18446744073709551615, 12> > (*)(Eigen::Ref<const Eigen::Matrix<float, -1, 3, 1, -1, 3>, 0, Eigen::OuterStride<> >, int); Extra = {nanobind::arg, nanobind::arg, nanobind::arg, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, nanobind::arg_v, char [1705]}]' /tmp/pip-req-build-x05q6kos/src/pgeof_ext.cpp:118:11: 从这里需要 /home/vaibhav/conda3v2/envs/superpoint/lib/python3.8/site-packages/nanobind/include/nanobind/nbfunc.h:49:39: 错误:静态断言失败:nb::arg 注释的数量必须与参数数量匹配! ninja:构建已停止:子命令失败。

  *** CMake build failed
  [end of output]

注意:此错误源自子进程,很可能不是 pip 的问题。 错误:无法为 pgeof 构建 wheel 无法构建 pgeof 错误:无法为 pgeof 构建 wheel,这是安装基于 pyproject.toml 的项目所必需的

我使用的是 Ubuntu 20.04 和 Cuda 11.8。此外,情况与@noisyneighbour。上次一切顺利,但这次却出现了这个问题。 请看一下。感谢您的考虑。

I'm having the same problem but can't solve it, using pip install pgeof reproduces your error, pip install git+ reports an error at step 11, can you give me some guidance?