"Brew install python3" non riesce a compilare pyexpat


2

brew install python3fallisce con un errore pyexpat, il che significa che Python installato non può analizzare XML (rottura pipecc.). Ecco il brano pertinente di ~/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.dylibmostra che questo simbolo è definito lì, ma secondo otool -Lil .sofile pyexpat non lo menziona; la sua unica dipendenza è:

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

Ancora una volta 02.make, ecco come è .sostato creato il pyexpat (ho aggiunto interruzioni di linea per renderlo più leggibile):

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

Sto eseguendo XCode 9.4.1 su mac OS 10.13.6 (17G65). Altri rapporti indicano che il problema potrebbe essere che la mia versione di Xcode è più recente della mia versione di macOS, ma a causa dei criteri di lavoro non posso ancora eseguire l'aggiornamento a Mojave.

Qualche idea su come posso ottenere un'installazione funzionante di Python 3?

Risposte:


2

Alla fine l'ho risolto da

  • disinstallare del tutto XCode (e basandosi sugli strumenti da riga di comando xcode-select)
  • cherry-picking questo commit nella mia directory Taps homebrew-core
  • reinstallare python3
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.