更新到 MacOS Monterey 后,Python3 和 'code' CLI 不工作

标签 python python-3.x macos visual-studio-code 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

我可以运行它。但是当运行 code . 在 vs code 中打开一个项目时,它给出了同样的错误:

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 . 之类的命令。

最佳答案

这 100% 是版本冲突/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)"

注意它是如何匹配路径 I 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 ,然后选择 Shell 命令:在 PATH 中安装“代码”命令 - 这应该会自动为您更新它。

看看进展如何!

关于更新到 MacOS Monterey 后,Python3 和 'code' CLI 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70425220/

相关文章:

linux - 使用 -c 和 awk 的管道字符串调用 bash 命令

python - Sqlite3 dbapi2.py 日期转换问题

Python:完整的非对称网格

python - 如何在python中将文件保存到特定目录?

python - 从元组列表中为每个项目创建 np.arrays 的最快方法

java - 将经过训练的超正方文件合并为一个

python - 在 IPython 中自动重新加载模块

python - Python 和 Rubular 之间正则表达式的区别?

python - 查找、连接和删除 python 列表中的项目

python - str.title() 和 Mac 上的编码