【问题标题】:Error installing Python 2 via Homebrew on MacOS High Sierra在 MacOS High Sierra 上通过 Homebrew 安装 Python 2 时出错
【发布时间】:2019-03-01 05:41:36
【问题描述】:

我在 MacOS High Sierra 上通过自制软件安装 Python@2 时遇到了麻烦。在 make 过程中,它多次失败并出现“函数声明错误后的预期函数体”。

根据来自 make 过程的消息,它似乎与 High Sierra 上的命令行工具已更新到 MacOSX10.14.sdk 这一事实有关。现在的问题是如何将SDK降级到10.13?

clang -c -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Modules/main.o Modules/main.c
clang -c -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Modules/gcmodule.o Modules/gcmodule.c
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/threadmodule.c -o Modules/threadmodule.o
In file included from Python/mactoolboxglue.c:27:
In file included from Include/pymactoolbox.h:10:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:24:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:29:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AppleEvents.h:597:165: error: expected function body after function declarator
extern OSStatus AEDeterminePermissionToAutomateTarget( const AEAddressDesc* target, AEEventClass theAEEventClass, AEEventID theAEEventID, Boolean askUserIfNeeded ) __OSX_AVAILABLE_STARTING( __MAC_10_14, __IPHONE_NA );
                                                                                                                                                                    ^
/usr/include/Availability.h:216:50: note: expanded from macro '__OSX_AVAILABLE_STARTING'
    #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx
                                                 ^
<scratch space>:95:1: note: expanded from here
__AVAILABILITY_INTERNAL__MAC_10_14
^
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/signalmodule.c -o Modules/signalmodule.o
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/posixmodule.c -o Modules/posixmodule.o
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/errnomodule.c -o Modules/errnomodule.o
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/pwdmodule.c -o Modules/pwdmodule.o
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/_sre.c -o Modules/_sre.o
In file included from Python/mactoolboxglue.c:27:
In file included from clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/_codecsmodule.c -o Modules/_codecsmodule.o
Include/pymactoolbox.h:10:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:67:
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:200:51: error: expected ';' after top level declarator
typedef struct OpaqueInkTextRef*        InkTextRef DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:222:53: error: expected ';' after top level declarator
typedef struct OpaqueInkStrokeRef*      InkStrokeRef DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:251:49: error: expected ';' after top level declarator
typedef struct InkPoint                 InkPoint DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:252:52: error: expected ';' after top level declarator
typedef InkPoint *                      InkPointPtr DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                   ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:262:58: error: expected ';' after top level declarator
typedef CFIndex                         InkAlternateCount DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:274:63: error: expected ';' after top level declarator
typedef FourCharCode                    InkUserWritingModeType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:289:70: error: expected ';' after top level declarator
typedef FourCharCode                    InkApplicationWritingModeType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                                                     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:303:34: error: expected ';' after top level declarator
typedef UInt32 InkDrawingModeType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                 ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:318:36: error: expected ';' after top level declarator
typedef UInt32 InkTextDrawFlagsType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                   ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:361:34: error: expected ';' after top level declarator
typedef UInt32 InkTerminationType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                 ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:427:29: error: expected ';' after top level declarator
typedef UInt32 InkSourceType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                            ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:454:34: error: expected ';' after top level declarator
typedef UInt32 InkRecognitionType DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                 ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:546:36: error: expected ';' after top level declarator
typedef FourCharCode InkGestureKind DEPRECATED_IN_MAC_OS_X_VERSION_10_14_AND_LATER;
                                   ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:776:63: error: expected function body after function declarator
InkUserWritingMode(void)                                      AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_14;
                                                              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:810:73: error: expected function body after function declarator
InkSetApplicationWritingMode(InkApplicationWritingModeType iWriteWhere) AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_14;
                                                                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:837:71: error: expected function body after function declarator
InkSetApplicationRecognitionMode(InkRecognitionType iRecognitionType) AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_14;
                                                                      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:901:63: error: expected function body after function declarator
  InkTerminationType   iAllowedTerminationTypes)              AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_14;
                                                              ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Carbon.framework/Frameworks/Ink.framework/Headers/Ink.h:934:63: error: expected function body after function declarator
InkIsPhraseInProgress(void)                                   AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_14;
                                                              ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
clang -fno-strict-aliasing -fno-common -dynamic -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -I/usr/include -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE  -c ./Modules/_weakref.c -o Modules/_weakref.o
20 errors generated.
make: *** [Python/mactoolboxglue.o] Error 1
make: *** Waiting for unfinished jobs....

我知道 Python 已安装在 MacOS 中,但这是我想通过 Homebrew 安装的两个工具的依赖项。

【问题讨论】:

  • 我能够使用以下方法解决此问题:github.com/Homebrew/homebrew-core/issues/…
  • 当然,我找到了这个,但后来的评论告诉你,这不再是有效的解决方案,因为 Apple 推出了新的 XCode 和命令行工具。但是,我在昨天的评论中看到,可以使用 xcode-select --install 选择不同版本的 XCode。我会试一试,让你知道。
  • @DarkCastle。谢谢你。一旦我通过简单地删除命令行工具来删除它,我就可以安装 xcode,它为两个版本 MacOSX10.13.sdk 和 MacOSX.14.sdk 创建了一个指向 MacOSX.sdk 的软链接。我想我现在可以为这个问题写一个完整的答案了。

标签: homebrew python-2.x macos-high-sierra


【解决方案1】:

为了解决问题,应分两步重新安装命令行工具:

  1. 删除命令行工具

sudo rm -rf /Library/Developer/CommandLineTools

  1. 安装命令行工具

xcode-select --install

新安装的版本会为 MacOSX10.13.sdk 和 MacOSX.14.sdk 这两个版本创建符号链接。

【讨论】:

    猜你喜欢
    • 2018-12-07
    • 2018-01-27
    • 2018-08-17
    • 2018-05-19
    • 2018-12-05
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    相关资源
    最近更新 更多