brew install python3 fails with a pyexpat error, which means the installed Python can't parse XML (breaking
pip etc). Here's the relevant excerpt from
*** 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 shows that this symbol is defined there, but according to
otool -L the pyexpat
.so file doesn't mention it; its only dependency is:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
02.make, this is how the pyexpat
.so was built (I've added line breaks to make it more readable):
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
I'm running XCode 9.4.1 on mac OS 10.13.6 (17G65). Other reports indicate that the problem might be that my Xcode version is newer than my macOS version, but due to work policy I can't upgrade to Mojave just yet.
Any ideas how I can get a working Python 3 install?