Python3 和 'code' CLI 在更新到 MacOS Monterey 后不工作
Python3 and 'code' CLI not working after updating to MacOS Monterey
我已更新到 MacOS Monterey,但现在 python 无法正常工作:
➜ ~ python3 --version
dyld[6578]: dyld cache '/System/Library/dyld/dyld_shared_cache_x86_64h' not loaded: syscall to map cache into shared region failed
dyld[6578]: 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)
[1] 6578 abort python3 --version
但是如果我运行:
➜ ~ /usr/bin/python3 --version
Python 3.8.9
我可以运行。但是当 运行ning code .
在 vs 代码中打开一个项目时,它给出了同样的错误:
dyld[6683]: dyld cache '/System/Library/dyld/dyld_shared_cache_x86_64h' not loaded: syscall to map cache into shared region failed
dyld[6683]: 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)
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory
我不确定该怎么做才能使 运行 成功执行 code .
之类的命令。
您的 python3 是 3.8.9,但错误消息是针对 3.6 的。您的 python 版本似乎存在冲突。我通过卸载 3.6 及其所有系统链接在我的机器上修复了这个错误,就像在“卸载 Python 3 使用终端”下看到的 here 一样,除了我使用自制命令 brew doctor
然后 brew cleanup
用于步骤 4. 和 5.
这是 100% 的版本 conflict/PATH 问题。
首先,打开终端并尝试 运行 echo $PATH
。它应该打印如下内容:
/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
如你所见,它对我说 3.10,而你的说 3.6
@guest_fish 提出了删除过时版本 Python 的好建议,但您可以尝试的另一种方法是检查以下内容:
vim $HOME/.zprofile
---> 这是 .bash_profile 的 zsh 模拟,这是我的样子:
# Setting PATH for Python 3.10
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH
eval "$(/opt/homebrew/bin/brew shellenv)"
请注意它如何匹配我上面 echo
的路径的第一部分
vim /etc/paths
---> 这应该匹配你的 PATH
的中间部分,我的看起来像这样:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
vim /etc/paths.d/<your_unique_id>
(在paths.d时按tab即可完成,一般只有一个选项)。我的看起来像这样:
/Library/Apple/usr/bin
注意它如何匹配路径的结尾
当您访问这些文件中的每一个时,您可以修改它们(受密码保护的 obv)以将 /usr/bin/python3
放在第一位,这意味着这将是它查找的第一个位置 python 构建文件并将(希望)使用正确的版本
现在,要修复 code
问题,您可以尝试进入 VSCode 并点击 SHIFT + ⌘ + P
,然后 select Shell 命令:在 PATH 中安装 'code' 命令 - 这应该会自动为您更新它。
看看进展如何!
我已更新到 MacOS Monterey,但现在 python 无法正常工作:
➜ ~ python3 --version
dyld[6578]: dyld cache '/System/Library/dyld/dyld_shared_cache_x86_64h' not loaded: syscall to map cache into shared region failed
dyld[6578]: 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)
[1] 6578 abort python3 --version
但是如果我运行:
➜ ~ /usr/bin/python3 --version
Python 3.8.9
我可以运行。但是当 运行ning code .
在 vs 代码中打开一个项目时,它给出了同样的错误:
dyld[6683]: dyld cache '/System/Library/dyld/dyld_shared_cache_x86_64h' not loaded: syscall to map cache into shared region failed
dyld[6683]: 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)
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory
我不确定该怎么做才能使 运行 成功执行 code .
之类的命令。
您的 python3 是 3.8.9,但错误消息是针对 3.6 的。您的 python 版本似乎存在冲突。我通过卸载 3.6 及其所有系统链接在我的机器上修复了这个错误,就像在“卸载 Python 3 使用终端”下看到的 here 一样,除了我使用自制命令 brew doctor
然后 brew cleanup
用于步骤 4. 和 5.
这是 100% 的版本 conflict/PATH 问题。
首先,打开终端并尝试 运行 echo $PATH
。它应该打印如下内容:
/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
如你所见,它对我说 3.10,而你的说 3.6
@guest_fish 提出了删除过时版本 Python 的好建议,但您可以尝试的另一种方法是检查以下内容:
vim $HOME/.zprofile
---> 这是 .bash_profile 的 zsh 模拟,这是我的样子:
# Setting PATH for Python 3.10
# The original version is saved in .zprofile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH
eval "$(/opt/homebrew/bin/brew shellenv)"
请注意它如何匹配我上面 echo
的路径的第一部分
vim /etc/paths
---> 这应该匹配你的PATH
的中间部分,我的看起来像这样:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
vim /etc/paths.d/<your_unique_id>
(在paths.d时按tab即可完成,一般只有一个选项)。我的看起来像这样:
/Library/Apple/usr/bin
注意它如何匹配路径的结尾
当您访问这些文件中的每一个时,您可以修改它们(受密码保护的 obv)以将 /usr/bin/python3
放在第一位,这意味着这将是它查找的第一个位置 python 构建文件并将(希望)使用正确的版本
现在,要修复 code
问题,您可以尝试进入 VSCode 并点击 SHIFT + ⌘ + P
,然后 select Shell 命令:在 PATH 中安装 'code' 命令 - 这应该会自动为您更新它。
看看进展如何!