En los últimos meses he tenido problemas instalando paquetes de Python que necesitan algún tipo de compilación de C/C++. En mi caso, los paquetes que estaba intentando instalar como dependencias eran

  • apache-beam
  • grpcio
  • grpcio-tools
  • protoc

Cada vez que intentaba instalar estos paquetes me encontraba con un el siguiente error de compilación

error: no member named 'nullptr_t' in the global namespace

Presiona aquí si quieres ver el log en su totalidad.

Esto solo sucedía utilizando MacOS, que en mi caso estaba en version Ventura 13.3.1.

Después de una buena búsqueda y lectura de issues en GitHub, encontré que el problema estaba con la version del SKD de MacOS y clang.

Aparenta que en un cambio de versiones de varias librerías fueron movidas o eliminadas. Esto aparenta no ser el caso en versiones de Debian o Ubuntu Linux ya que la misma compilación funcionaba al correrla en un contenedor de Docker.

Versiones con problemas

Las versiones que estaban causando problemas para mi fueron

  • Apple clang version 14.0.0 (clang-1400.0.29.202)
  • Xcode 14.1
  • Python 3.8 a 3.10

La solución esta en actualizar Xcode a la versión mas reciente, version 14.3 (14E222b) al escribir este post. Esta actualización a la vez actualiza la version de Clang a Apple clang version 14.0.3 (clang-1403.0.22.14.1).

Espero que esto ayude a alguien que este buscando solución en vano.