繁体   English   中英

Python3 命令使 mac 崩溃

[英]Python3 command crashes the mac

我在我的 Mac 上使用 Python 3.6。 但最近 python 3.6 一直没有工作,它似乎已从我的系统中删除。 仍然不确定原因。 我正在使用 macOS Monterey 12.2.1

所以我做了brew install python

python --version

给我以下结果, Python 2.7.18

并且命令python也返回相同的结果。

但是当我输入并输入python3时,它使系统崩溃并给出以下报告作为日志,

python3错误日志

请参阅下面的崩溃报告中的更多信息,

    Termination Reason:    Namespace DYLD, Code 1 Library missing
Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
Reason: tried: '/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation' (no such file), '/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation' (no such file)
(terminated at launch; ignore backtrace)

Application Specific Information:
Library not loaded: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
Reason: tried: '/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation' (no such file), '/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation' (no such file)


Error Formulating Crash Report:
dyld_process_snapshot_get_shared_cache failed

Thread 0 Crashed:
0   dyld                                0x7fff6bdb20ce __abort_with_payload + 10
1   dyld                                0x7fff6bdc81cf abort_with_payload_wrapper_internal + 80
2   dyld                                0x7fff6bdc8201 abort_with_payload + 9
3   dyld                                0x7fff6bd76613 dyld4::halt(char const*) + 375
4   dyld                                0x7fff6bd7255d dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 3955
5   dyld                                0x7fff6bd714b4 start + 388


Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000002000209  rbx: 0x0000000000000000  rcx: 0x00007fff5bffe338  rdx: 0x00007fff5bffe7a0
  rdi: 0x0000000000000006  rsi: 0x0000000000000001  rbp: 0x00007fff5bffe380  rsp: 0x00007fff5bffe338
   r8: 0x00007fff5bffe3a0   r9: 0x0000000000000000  r10: 0x00000000000000bf  r11: 0x0000000000000246
  r12: 0x00000000000000bf  r13: 0x00007fff5bffe7a0  r14: 0x0000000000000001  r15: 0x0000000000000006
  rip: 0x00007fff6bdb20ce  rfl: 0x0000000000000246  cr2: 0x00007fff6bd78e3c
  
Logical CPU:     0
Error Code:      0x02000209 
Trap Number:     133

基于其他一些解决方法,我尝试使用 pyenv - pyenv install 3.6.5但最终出现以下错误,

BUILD FAILED (OS X 12.2.1 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/xl/y8f6pv9103zdvp6fy9_5py1c0000gn/T/python-build.20220419170450.10396
Results logged to /var/folders/xl/y8f6pv9103zdvp6fy9_5py1c0000gn/T/python-build.20220419170450.10396.log

Last 10 log lines:
        ret = sendfile(in, out, offset, &sbytes, &sf, flags);
              ^
./Modules/posixmodule.c:10432:5: warning: code will never be executed [-Wunreachable-code]
    Py_FatalError("abort() called from Python code didn't abort!");
    ^~~~~~~~~~~~~
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include   -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers   -I. -I./Include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/Users/apple/.pyenv/versions/3.6.5/openssl/include -I/Users/apple/.pyenv/versions/3.6.5/include -I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/Users/apple/.pyenv/versions/3.6.5/openssl/include -I/Users/apple/.pyenv/versions/3.6.5/include -I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include  -DPy_BUILD_CORE  -c ./Modules/pwdmodule.c -o Modules/pwdmodule.o
1 warning and 1 error generated.
make: *** [Modules/posixmodule.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.

上述错误的可用解决方法不起作用,并且在查找根本原因时会产生更多的复杂性。

似乎我的系统缺少一些 python 默认文件或其他一些小问题,不确定原因。

所以目标是让我的系统的默认 python 版本应该指向 python 3.6,因为需要使用 SAM 在本地运行 AWS lambda 函数,lambda 函数是使用 python 3.6 创建的,它之前一直在我的系统上工作。

感谢您的任何建议。

所以我做了brew install python

在撰写本文时,这会将 Python 3.9 安装到/usr/local ,例如/usr/local/bin/python3.9 ,因此这对 Python 3.6 没有太大帮助。

python --version给我以下结果, Python 2.7.18和命令python也返回相同的结果。

是的——macOS 中系统默认的 Python 解释器仍然是 Python 2,交互式运行它会警告你:

警告:不推荐使用 Python 2.7。 此版本包含在 macOS 中以与旧版软件兼容。 macOS 的未来版本将不包括 Python 2.7。

无论如何,您的原始错误看起来像您现在安装了一半或已失效的 Python 3.6 框架构建。 您可以尝试从https://www.python.org/downloads/macos/ (看起来是 3.6.8)重新安装最新的 Python.org 版本。

那个旧版本(从 2018 年开始)也很可能根本不兼容 macOS 12.2(这可能也是pyenv挣扎的原因)。

无论如何,Python 3.6已经过期(根据这些 Lambda 文档,Lambda 对它的支持也将在今年结束),所以我会考虑升级到受支持的版本,即 Python 3.9(对于 Lambda ).

如果通过 Python.org 重新安装没有成功,并且升级不是一个选项,您可能需要考虑使用 Docker 容器和python:3.6图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM