python - 在 macOS 11.0 Big Sur 上安装 Pyobjc 时出错
问题描述
尝试在 Big Sur 的虚拟环境中安装pyobjc库时出现错误。安装错误,声称它“无法确定 SDK 版本”。我做了一些挖掘,看起来这个错误是由这个流中的异常触发的。
这是错误的开始:
Building wheel for pyobjc-core (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /Users/me/Desktop/Projects/env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-qixc6c89/pyobjc-core/setup.py'"'"'; __file__='"'"'/private/tmp/pip-install-qixc6c89/pyobjc-core/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/tmp/pip-wheel-c0phpdjv
cwd: /private/tmp/pip-install-qixc6c89/pyobjc-core/
这是错误的结尾:
copying PyObjCTest/test_specialtypecodes_methdef.py -> build/lib.macosx-11.0-x86_64-3.9/PyObjCTest
running build_ext
Cannot determine SDK version
----------------------------------------
ERROR: Command errored out with exit status 1: /Users/me/Desktop/Projects/env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-qixc6c89/pyobjc-core/setup.py'"'"'; __file__='"'"'/private/tmp/pip-install-qixc6c89/pyobjc-core/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-l_v97344/install-record.txt --single-version-externally-managed --compile --install-headers /Users/me/Desktop/Projects/env/include/site/python3.9/pyobjc-core Check the logs for full command output.
我尝试重新安装 Xcode 开发人员工具无济于事,因为我认为这可能会刷新 SDK 引用。任何帮助将非常感激。
- 尝试安装 pyobjc 7.0版
- Python 版本:3.9.0、3.8.2(都试过了,都不管用)
解决方案
我相信这个问题现在应该已经解决了。因此,运行pip install pyobjc
应该会按预期再次运行(针对 pyobjc- 7.0.1和 python 3.9.0进行了测试)。
如果没有,您可以为当前会话临时设置 SDK 并使用以下命令从头开始构建它:
SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk pip wheel pyobjc-core
(如果它不起作用,请检查您安装了哪些 SDK。它适用于我MacOSX10.15
,只需运行ls /Library/Developer/CommandLineTools/SDKs/
并查看可用的。您需要 Xcode CLI 工具。)然后pip install pyobjc
再次运行以安装 pyobjc 的其余部分。
对于某些框架插件,您可能必须专门设置 cflags:
SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk \
CFLAGS="-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk" \
pip wheel pyobjc-framework-cocoa
同样,只需MacOSX10.14.sdk
在您的系统上使用 10.X SDK 进行切换。
有更多关于这个相关 GitHub 问题的信息,我无耻地从@hoefling偷了这个解决方案,所以 <3
推荐阅读
- wordpress - WordPress 中带有 CustomTaxonomy 的 CustomPostType 的永久链接
- excel - Excel VBA在公式更改范围时设置值
- apache-kafka - logstash 使用的主题显示零延迟
- nuget - 使用 nuget 交付临时构建时资产
- spring-cloud-gateway - 在 Spring Cloud Gateway 中使用 Resilience4j 为路由配置特定的断路器
- windows - 使用 GIT 服务器(Windows),无法克隆回 GIT 服务器
- c# - Azure Functions 单元测试错误 (TimerTrigger.HttpFunction)
- python - 如何在实时站点上使用 Django 中的 Google 授权应用程序
- python - 使用 TPU 在 GCP 上进行 Keras/Tensorflow 培训
- multithreading - 什么是纺线?