【问题标题】:Python3 and 'code' CLI not working after updating to MacOS Monterey更新到 MacOS Monterey 后 Python3 和“代码”CLI 无法正常工作
【发布时间】:2022-01-22 06:30:30
【问题描述】:

我更新到 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 代码中打开项目时,它会给出相同的错误:

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

【问题讨论】:

  • 似乎pythoncode 命令都不再在您的PATH 中了。
  • @BjornB。这不是错误所说的

标签: python python-3.x macos visual-studio-code macos-monterey


【解决方案1】:

您的 python3 是 3.8.9,但错误消息是针对 3.6。看起来你有冲突的 python 版本。我通过卸载 3.6 及其所有系统链接(如在“使用终端卸载 Python 3”下看到的 here)在我的机器上修复了此错误,除了我使用自制命令 brew doctor 然后 brew cleanup 用于步骤 4 和 5。

【讨论】:

  • /Library/Frameworks 中删除内容可能会在其他地方引起更多问题,但不清楚如何修复./MacOS/Electron: No such file or directory
  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

这 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)"

注意它如何匹配上面我echo'd 路径的第一部分

  • 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 Command: Install 'code' command in PATH - 这应该会更新它你自动的。

Lmk 怎么回事!

【讨论】:

  • 我尝试在这些文件中添加 python 3 路径,但仍然遇到同样的错误。
  • 当运行 echo $PATH 我得到 - /usr/local/sbin:/usr/local/opt/python@3.9/bin:/usr/local/opt/php@7.3/bin:/usr/local/opt/python@3.9/bin:/usr/bin/python3:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/usr/local/mysql/bin:/usr/local/bin
猜你喜欢
  • 1970-01-01
  • 2018-03-08
  • 2022-11-09
  • 2022-07-22
  • 1970-01-01
  • 2020-12-07
  • 1970-01-01
  • 2021-08-19
  • 2013-05-28
相关资源
最近更新 更多