"brew install python3" no puede compilar pyexpat

brew install python3falla con un error de pyexpat, lo que significa que Python instalado no puede analizar XML (rompiendo, pipetc.). Aquí está el extracto relevante de ~/Library/Logs/Homebrew/python/02.make:

*** WARNING: renaming "pyexpat" since importing it failed: dlopen(build/lib.macosx-10.13-x86_64-3.7/pyexpat.cpython-37m-darwin.so, 2): Symbol not found: _XML_ErrorString
  Referenced from: build/lib.macosx-10.13-x86_64-3.7/pyexpat.cpython-37m-darwin.so
  Expected in: flat namespace
 in build/lib.macosx-10.13-x86_64-3.7/pyexpat.cpython-37m-darwin.so

nm -gU /usr/lib/libexpat.1.dylibmuestra que este símbolo está definido allí, pero según otool -Lel archivo pyexpat .sono lo menciona; su única dependencia es:

/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)

Nuevamente 02.make, así es como se creó pyexpat .so(agregué saltos de línea para que sea más legible):

clang \
-bundle \
-undefined dynamic_lookup \
-isysroot \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk \
build/temp.macosx-10.13-x86_64-3.7/private/tmp/python-20180929-40812-11ki5rr/Python-3.7.0/Modules/pyexpat.o \
build/temp.macosx-10.13-x86_64-3.7/private/tmp/python-20180929-40812-11ki5rr/Python-3.7.0/Modules/expat/xmlparse.o \
build/temp.macosx-10.13-x86_64-3.7/private/tmp/python-20180929-40812-11ki5rr/Python-3.7.0/Modules/expat/xmlrole.o \
build/temp.macosx-10.13-x86_64-3.7/private/tmp/python-20180929-40812-11ki5rr/Python-3.7.0/Modules/expat/xmltok.o \
-L/usr/local/lib \
-o build/lib.macosx-10.13-x86_64-3.7/pyexpat.cpython-37m-darwin.so

Estoy ejecutando XCode 9.4.1 en mac OS 10.13.6 (17G65). Otros informes indican que el problema podría ser que mi versión de Xcode es más nueva que mi versión de macOS, pero debido a la política de trabajo, todavía no puedo actualizar a Mojave.

¿Alguna idea de cómo puedo obtener una instalación de Python 3 que funcione?

Respuestas (1)

Eventualmente arreglé esto por

  • desinstalar XCode por completo (y confiar en las herramientas de línea de comando xcode-select)
  • Seleccionando este compromiso en mi directorio Homebrew-core Taps
  • reinstalando python3
el enlace de confirmación ya no es válido
Lo lamento; No sabía que los enlaces de git commit habían muerto :(