pinecone-io / pinecone-datasets

An open-source dataset library for pre-embedded dataset: create your own data catalog, or use Pinecone's public datasets.
https://pinecone-io.github.io/pinecone-datasets/
31 stars 12 forks source link

[Bug] Dependency issues with Python 3.12 #46

Open cwaddingham opened 3 months ago

cwaddingham commented 3 months ago

Is this a new bug?

Current Behavior

When installing pinecone-datasets via pip with Python 3.12 on MacOS 14, I run into errors around the installation of pyarrow. While researching the problem I found this issue on the PyArrow Github. It was closed last year as they expected to build wheels for PyArrow on Python 3.12 but it does not appear these have been published.

Switching to Python 3.11 allows the package to be installed normally.

Expected Behavior

Expect to install pinecone-datasets successfully.

Steps To Reproduce

  1. On MacOS, ensure that Python 3.12 is installed.
  2. Run python3.12 -m venv .venv3.12 to create a virtual environment specifically for 3.12.
  3. Source the venv source .venv3.12/bin/activate.
  4. Attempt to install pip install pinecone-datasets.

Relevant log output

Building wheels for collected packages: pyarrow
  Building wheel for pyarrow (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pyarrow (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [434 lines of output]
      <string>:34: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
      WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
      Traceback (most recent call last):
        File "/private/var/folders/lw/66k9ftls4cs_4vtpblj6bkr00000gn/T/pip-build-env-yda_nrue/overlay/lib/python3.12/site-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
          section = defn.get("tool", {})[tool_name]
                    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
...
pyarrow/error.pxi:82:60: The keyword 'nogil' should appear at the end of the function signature line. Placing it before 'except' or 'noexcept' will be disallowed in a future version of Cython.

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
                  raise ArrowException(message)

      # This is an API function for C++ PyArrow
      cdef api int pyarrow_internal_check_status(const CStatus& status) \
              nogil except -1:
                             ^
      ------------------------------------------------------------

      pyarrow/error.pxi:143:23: The keyword 'nogil' should appear at the end of the function signature line. Placing it before 'except' or 'noexcept' will be disallowed in a future version of Cython.

      gmake[2]: *** [CMakeFiles/lib_pyx.dir/build.make:71: CMakeFiles/lib_pyx] Error 1
      gmake[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/lib_pyx.dir/all] Error 2
      gmake: *** [Makefile:136: all] Error 2
      error: command '/opt/homebrew/bin/cmake' failed with exit code 2
      [end of output]

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

Environment

- **OS**: MacOS 14
- **Language version**: Python 3.12.4
- **Pinecone client version**: N/A

Additional Context

No response

alexshi0000 commented 3 weeks ago

Having this problem as well, tried downgrading Cython to 0.29.36 to also no avail. Is there some way to patch the nogil syntax if that's the breaking change?