【问题标题】:How can I fix the "zsh: command not found: python" error? (macOS Monterey 12.3, Python 3.10, Atom IDE, and atom-python-run 0.9.7)如何修复“zsh:找不到命令:python”错误? (macOS Monterey 12.3、python 3.10、Atom IDE、atom-python-run 0.9.7)
【发布时间】:2022-06-21 05:02:16
【问题描述】:

自从我获得了 Monterey 12.3 更新(虽然不确定它是否相关),当我尝试在终端中运行我的 python 代码时,我收到了这个错误:

我正在使用 python 3.10.3,Atom IDE,并通过 atom-python-run 包在终端中运行代码(以前可以正常工作)。包的设置如下:

终端中的which 命令返回以下内容(这很奇怪,因为之前它会返回一些东西给which python):

我收集错误是因为终端调用python 而不是python3,但我对任何编码都非常陌生,不知道为什么现在开始以及如何修复它。这些都不适合我:

  • 我从 python.org 删除并重新安装了 python。
  • 我尝试了alias python='python3'(我在此处的一个线程中看到了)。
  • 我试过export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"(我找到了here)。
  • 为了重置 zsh 和路径,我删除了 /local/users/ 中所有相关的隐藏文件并再次运行终端。
  • 我删除了 evetyrhing 并重新安装了 macos 和 python 却得到了同样的错误。

【问题讨论】:

    标签: python macos terminal atom-editor macos-monterey


    【解决方案1】:

    任何将他们的 macOS 更新到 Monterey 12.3 的人都会发现他们突然不再拥有系统提供的 Python 2。

    原因是苹果删除了系统提供的python 2安装(details)。

    因此,解决方法/解决方案是使用 pyenv 安装 python 2.7(或您需要的任何其他特定版本)。

    1. 安装pyenvbrew来管理不同的python版本:brew install pyenv
    2. 使用pyenv install --list 列出所有可安装的版本
    3. pyenv install 2.7.18安装python 2.7.18
    4. 使用pyenv versions 列出已安装的版本
    5. pyenv global 2.7.18设置全局python版本
    6. eval "$(pyenv init --path)" 添加到~/.zprofile(或~/.bash_profile~/.zshrc,无论您需要什么)
    7. 重新启动 shell 并检查 python 是否正常工作。

    【讨论】:

    • 如果目标是让 Python 2 在 Mac OS Monterey 上运行,这应该是公认的答案
    • 为什么所有答案都指向homebrew?我最近迁移到pyenv + pipenv 仅使用macports 进行管理,我遇到了类似的错误。在大多数情况下,用户$PATH 搞砸了。
    【解决方案2】:

    好的,经过几天的尝试,这对我有用:

    1. 我重新安装了 Monterey(不确定这是否必要,但我只是觉得我把终端和 $PATH 搞砸了太多)。
    2. 我通过brew而不是从官方网站安装python。 它仍然会返回 command not found 错误。
    3. 我在终端中运行echo "alias python=/usr/bin/python3" >> ~/.zshrc 以使用python3 别名python

    问题解决了。

    据我所知,从 12.3 开始,macOS 中不再预装 python 2.x,因此出现了错误。尽管有设置,但atom-python-run 会调用python 而不是python3,但我仍然觉得很奇怪。

    【讨论】:

    • 在某些情况下,您正在使用的程序不会查看您的~/.zshrc。在我的例子中,一个更便携的解决方案是运行ln -s /opt/homebrew/bin/python3 /usr/local/bin/python,它不依赖于 zsh。
    【解决方案3】:

    如果您只是安装了 python3,只需使用 python3 作为命令,而不是仅使用 python。就我而言,我必须先通过brew 使用brew install pyenv 安装pynev

    但在使用 pynev 安装 python 2.7.18 并使用 pyenv global 2.7.18 将其设置为全局版本之后,我在尝试运行 python 时仍然遇到错误。

    对我有用(因为我已经安装了 python3)是通过将我的命令更改为使用 python3 而不仅仅是 python。当然,这不是每个可能想要使用 python 2 的人的解决方案。

    【讨论】:

      【解决方案4】:

      我有 Macbook pro M1 芯片 MAC OS Monterey 12.4

      • 我删除了所有 Python 版本并清除了垃圾
      • 打开终端并输入 python
      • 这提示了 xcode.app 更新
      • 然后从python.org下载最新版python(2.10.5版)
      • 安装了那个版本
      • 退出终端
      • 已打开终端 -Typed python3

      现在好像没问题

      【讨论】:

        【解决方案5】:

        使用https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg安装后我得到zsh: Command not found python

        我通过配置环境解决了这个问题。我在.zshrc中添加了一行alias python=/usr/local/bin/python3.10。(你必须确定它是真实的路径!)


        我的 macOS(Apple Silicon):

        Darwin Johns-MacBook-Pro.local 21.4.0 Darwin Kernel Version 21.4.0: Mon Feb 21 20:35:58 PST 2022; root:xnu-8020.101.4~2/RELEASE_ARM64_T6000 arm64

        【讨论】:

          猜你喜欢
          • 2022-08-17
          • 2022-11-17
          • 1970-01-01
          • 2019-09-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-12
          相关资源
          最近更新 更多