![](/img/trans.png)
[英]python3 and pip is installed on mac but pip3 command not found
[英]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
时,它使系统崩溃并给出以下报告作为日志,
请参阅下面的崩溃报告中的更多信息,
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.