Skip to content

[Python] Error compiling Cython files on Windows during release verification #40375

@amoeba

Description

@amoeba

Describe the bug, including details regarding any error messages, version, and platform.

I ran into this while doing release verification for 15.0.1 RC0. The code in the error message is relatively new (PyCapsule) but old enough that it may just be my setup.

On Windows 11 in cmd.exe prompt with Anaconda set up, I ran

dev\release\verify-release-candidate.bat 15.0.1 0

C++ compiled fine and then when it got to building PyArrow, I see:

-- Running cmake --build for PyArrow
cmake --build . --config release
Microsoft (R) Build Engine version 16.11.2+f32259642 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

  1>Checking Build System
  Compiling Cython CXX source for _acero...
  performance hint: pyarrow\_acero.pyx:511:67: Exception check after calling 'unwrap' will always require the GIL to be
   acquired. Declare 'unwrap' as 'noexcept' if you control the definition and you're sure you don't want the function t
  o raise exceptions.
  performance hint: pyarrow\_acero.pyx:511:36: Exception check after calling 'GetResultValue[shared_ptr[CTable]]' will
  always require the GIL to be acquired. Declare 'GetResultValue[shared_ptr[CTable]]' as 'noexcept' if you control the
  definition and you're sure you don't want the function to raise exceptions.
  Building Custom Rule C:/tmp/arrow-verify-release/apache-arrow-15.0.1/python/CMakeLists.txt
  Compiling Cython CXX source for lib...

  Error compiling Cython file:
  ------------------------------------------------------------
  ...
      if schema.release != NULL:
          schema.release(schema)

      free(schema)

  cdef object alloc_c_schema(ArrowSchema** c_schema) noexcept:
                            ^
  ------------------------------------------------------------

  pyarrow\types.pxi:5264:26: noexcept clause is ignored for function returning Python object

  Error compiling Cython file:
  ------------------------------------------------------------
  ...
      if array.release != NULL:
          array.release(array)

      free(array)

  cdef object alloc_c_array(ArrowArray** c_array) noexcept:
                           ^
  ------------------------------------------------------------

  pyarrow\types.pxi:5283:25: noexcept clause is ignored for function returning Python object

  Error compiling Cython file:
  ------------------------------------------------------------
  ...
      if stream.release != NULL:
          stream.release(stream)

      free(stream)

  cdef object alloc_c_stream(ArrowArrayStream** c_stream) noexcept:
                            ^
  ------------------------------------------------------------

  pyarrow\types.pxi:5302:26: noexcept clause is ignored for function returning Python object
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(24
1,5): error MSB8066: Custom build for 'C:\tmp\arrow-verify-release\apache-arrow-15.0.1\python\build\temp.win-amd64-cpyt
hon-38\CMakeFiles\e1d0ace4d7a55ee7d9220e8a19e03e2f\lib_pyx.rule;C:\tmp\arrow-verify-release\apache-arrow-15.0.1\python\
CMakeLists.txt' exited with code 1. [C:\tmp\arrow-verify-release\apache-arrow-15.0.1\python\build\temp.win-amd64-cpytho
n-38\lib_pyx.vcxproj]

I noted that the release verification script pins Python 3.8 so right now I'm re-running verification with Python 3.11 in the errors are related to that.

Component(s)

Python, Release

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions