Skip to content

Could not build wheels for pygeodiff - pip3 install mergin-client fails #164

@NewGraphEnvironment

Description

@NewGraphEnvironment

First off - banger tools. Game changing. Incredibly useful. You should be proud. Thank you.

Was hoping to install the command line tools but have run into a bit of a snag. Attempting to set up conda env using environment.yml file. Also tried with a straight up pip3 install mergin-client with same errors. I have attached the environment.yml file as a .txt file

System is:

System Version: macOS 12.4 (21F79)
Kernel Version: Darwin 21.5.0
Chip: Apple M1 Max

Seems to be an issue related to cmake and pygeodiff. I tried rolling back the python versions to 3.10 and 3.9). Rolling back mergin-client to 2.0.0 and <2.0.0. Installing pygeodiff and mergin-client separately with just straight pip. Although I actually installed it, I did not go so far as to add ninja to my path as I figured that would have been specified as a requirement in the readme. Anyway, here is the reoccurring error:

..........
Failed to build pygeodiff
\ 
Pip subprocess error:
  error: subprocess-exited-with-error
  
  × Building wheel for pygeodiff (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [161 lines of output]
      
      
      --------------------------------------------------------------------------------
      -- Trying 'Ninja' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
      -- Configuring incomplete, errors occurred!
      See also "/private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/_cmake_test_compile/build/CMakeFiles/CMakeOutput.log".
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Ninja' generator - failure
      --------------------------------------------------------------------------------
      
      
      
      --------------------------------------------------------------------------------
      -- Trying 'Unix Makefiles' generator
      --------------------------------
      ---------------------------
      ----------------------
      -----------------
      ------------
      -------
      --
      Not searching for unused variables given on the command line.
      -- The C compiler identification is AppleClang 13.1.6.13160021
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- The CXX compiler identification is AppleClang 13.1.6.13160021
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/_cmake_test_compile/build
      --
      -------
      ------------
      -----------------
      ----------------------
      ---------------------------
      --------------------------------
      -- Trying 'Unix Makefiles' generator - success
      --------------------------------------------------------------------------------
      
      Configuring Project
        Working directory:
          /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/_skbuild/macosx-12.0-arm64-3.11/cmake-build
        Command:
          /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-build-env-oksyersm/overlay/lib/python3.11/site-packages/cmake/data/bin/cmake /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/geodiff -G 'Unix Makefiles' -DCMAKE_INSTALL_PREFIX:PATH=/private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/_skbuild/macosx-12.0-arm64-3.11/cmake-install -DPYTHON_VERSION_STRING:STRING=3.11.0 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-build-env-oksyersm/overlay/lib/python3.11/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/bin/python -DPYTHON_INCLUDE_DIR:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/include/python3.11 -DPYTHON_LIBRARY:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/lib/libpython3.11.dylib -DPython_EXECUTABLE:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/bin/python -DPython_ROOT_DIR:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff -DPython_INCLUDE_DIR:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/include/python3.11 -DPython_FIND_REGISTRY:STRING=NEVER -DPython3_EXECUTABLE:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/bin/python -DPython3_ROOT_DIR:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff -DPython3_INCLUDE_DIR:PATH=/opt/homebrew/Caskroom/miniconda/base/envs/dff/include/python3.11 -DPython3_FIND_REGISTRY:STRING=NEVER -DENABLE_TESTS:BOOL=OFF -DENABLE_COVERAGE:BOOL=OFF -DBUILD_TOOLS:BOOL=OFF -DPEDANTIC:BOOL=OFF -DPYGEODIFFVERSION=2.0.1 -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=12.0 -DCMAKE_OSX_ARCHITECTURES:STRING=arm64
      
      -- The C compiler identification is AppleClang 13.1.6.13160021
      -- The CXX compiler identification is AppleClang 13.1.6.13160021
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /Library/Developer/CommandLineTools/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: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- The geodiff is built using scikit-build for pygeodiff Python package
      -- Found PythonInterp: /opt/homebrew/Caskroom/miniconda/base/envs/dff/bin/python (found version "3.11")
      -- Found PythonLibs: /opt/homebrew/Caskroom/miniconda/base/envs/dff/lib/libpython3.11.dylib (found version "3.11.0")
      -- Found SQLite3: /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/usr/include (found version "3.37.0")
      -- SQLite3 version: 3.37.0
      -- SQLite3 include dirs: /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/usr/include
      -- SQLite3 library: /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk/usr/lib/libsqlite3.tbd
      -- Determining available thread-local storage mechanism
      -- Checking if __thread is supported
      -- Performing Test TLS_USE_THREAD
      -- Performing Test TLS_USE_THREAD - Success
      -- Checking if __thread is supported - yes
      -- Determining available thread-local storage mechanism - Done
      -- Determining available locale mechanism
      -- Checking if _create_locale is supported
      -- Looking for locale.h
      -- Looking for locale.h - found
      -- Performing Test LOCALE_USE__CREATE_LOCALE
      -- Performing Test LOCALE_USE__CREATE_LOCALE - Failed
      -- Checking if _create_locale is supported - no
      -- Checking if newlocale is supported
      -- Looking for xlocale.h
      -- Looking for xlocale.h - found
      -- Performing Test LOCALE_USE_NEWLOCALE
      -- Performing Test LOCALE_USE_NEWLOCALE - Success
      -- Checking if newlocale is supported - yes
      -- Determining available locale mechanism - Done
      -- Configuring done
      -- Generating done
      CMake Warning:
        Manually-specified variables were not used by the project:
      
          Python3_EXECUTABLE
          Python3_FIND_REGISTRY
          Python3_INCLUDE_DIR
          Python3_ROOT_DIR
          Python_EXECUTABLE
          Python_FIND_REGISTRY
          Python_INCLUDE_DIR
          Python_ROOT_DIR
      
      
      -- Build files have been written to: /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/_skbuild/macosx-12.0-arm64-3.11/cmake-build
      [  3%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/geodiff.cpp.o
      [  6%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/geodiffutils.cpp.o
      [  9%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/geodiffrebase.cpp.o
      [ 12%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/geodifflogger.cpp.o
      [ 16%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/geodiffcontext.cpp.o
      [ 19%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/changesetconcat.cpp.o
      [ 22%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/changesetreader.cpp.o
      [ 25%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/changesetutils.cpp.o
      [ 29%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/changesetwriter.cpp.o
      [ 32%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/driver.cpp.o
      [ 35%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/tableschema.cpp.o
      [ 38%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/drivers/sqlitedriver.cpp.o
      [ 41%] Building CXX object CMakeFiles/pygeodiff-2.0.1-python.dir/src/drivers/sqliteutils.cpp.o
      /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/geodiff/src/drivers/sqliteutils.cpp:244:12: error: use of undeclared identifier 'sqlite3_enable_load_extension'
        int rc = sqlite3_enable_load_extension( db->get(), 1 );
                 ^
      1 error generated.
      make[2]: *** [CMakeFiles/pygeodiff-2.0.1-python.dir/src/drivers/sqliteutils.cpp.o] Error 1
      make[1]: *** [CMakeFiles/pygeodiff-2.0.1-python.dir/all] Error 2
      make: *** [all] Error 2
      Traceback (most recent call last):
        File "/private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-build-env-oksyersm/overlay/lib/python3.11/site-packages/skbuild/setuptools_wrap.py", line 649, in setup
          cmkr.make(make_args, install_target=cmake_install_target, env=env)
        File "/private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-build-env-oksyersm/overlay/lib/python3.11/site-packages/skbuild/cmaker.py", line 686, in make
          self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
        File "/private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-build-env-oksyersm/overlay/lib/python3.11/site-packages/skbuild/cmaker.py", line 717, in make_impl
          raise SKBuildError(
      
      An error occurred while building with CMake.
        Command:
          /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-build-env-oksyersm/overlay/lib/python3.11/site-packages/cmake/data/bin/cmake --build . --target install --config Release --
        Install target:
          install
        Source directory:
          /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627
[environment.txt](https://github.com/MerginMaps/mergin-py-client/files/10694512/environment.txt)

        Working directory:
          /private/var/folders/mg/h910y2c54fsc99qj74dyrjph0000gn/T/pip-install-6f9b5ket/pygeodiff_993321479ce24f789896c0f1effce627/_skbuild/macosx-12.0-arm64-3.11/cmake-build
      Please check the install target is valid and see CMake's output for more information.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pygeodiff
ERROR: Could not build wheels for pygeodiff, which is required to install pyproject.toml-based projects
| 
failed

Metadata

Metadata

Assignees

Labels

feedbackquestionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions