brew install python3
falla con un error de pyexpat, lo que significa que Python instalado no puede analizar XML (rompiendo, pip
etc.). 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.dylib
muestra que este símbolo está definido allí, pero según otool -L
el archivo pyexpat .so
no 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?
Eventualmente arreglé esto por
Pedro
Pablo Crowley