如何修复“ zsh: command not found: Python”错误? (macOS Monterey 12.3、 Python 3.10、 Atom IDE 和 Atom-Python-run 0.9.7)

自从我得到了 MacOS v12.3(Monterey)更新(虽然不确定它是否相关) ,当我尝试在终端中运行 Python 代码时,我一直得到这个错误:

Python not found error

我使用的是 Python 3.10.3,亚当 IDE,并通过 atom-Python-run 包在终端中运行代码(这个包过去工作得非常好)。软件包的设置如下:

atom-python-run-settings

终端中的 which命令返回以下内容(这很奇怪,因为之前它只返回 which python) :

Which Python

我收集的错误发生,因为终端调用 python而不是 python3,但我是超级新的任何编码,不知道为什么它现在开始和如何修复它。这些对我来说都不管用:

  • 我删除了 Python,然后从 Python.org 重新安装了 Python 解释器。
  • 我尝试了 alias python='python3'(我在这里的一个线程中看到了它)。
  • 我试了 export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"(我找到了 给你)。
  • 为了重置 zsh 和路径,我删除了 /local/users/中所有相关的隐藏文件,并再次运行终端。
  • 我删除了所有内容,重新安装了 MacOSX 和 Python 解释器,结果只得到了同样的错误。
167316 次浏览

OK, after a couple of days trying, this is what has worked for me:

  1. I reinstalled Monterey (not sure it was essential, but I just figured I had messed with terminal and $PATH too much).
  2. I installed python via brew rather than from the official website. It would still return command not found error.
  3. I ran echo "alias python=/usr/bin/python3" >> ~/.zshrc in terminal to alias python with python3.

Problem solved.

As far as I get it, there is no more pre-installed python 2.x in macOS as of 12.3 hence the error. I still find it odd though that atom-python-run would call for python instead of python3 despite the settings.

Anyone updating their macOS to Monterey 12.3 will find that they suddenly no longer have the system-provided Python 2.

The reason for this is that Apple removed the system-provided Python 2 installation (details).

So a workaround/solution for this is to use pyenv to install Python 2.7 (or any other specific version you need).

  1. Install pyenv with brew to manage different Python versions: brew install pyenv
  2. List all installable versions with pyenv install --list
  3. Install Python 2.7.18 with pyenv install 2.7.18
  4. List installed versions with pyenv versions
  5. Set global python version with pyenv global 2.7.18
  6. Add eval "$(pyenv init --path)" to ~/.zprofile (or ~/.bash_profile or ~/.zshrc, whichever you need)
  7. Relaunch the shell and check that Python works, or run $ source ~/.zprofile (Thanks masoud soroush!)

I got zsh: Command not found python after installing using https://www.python.org/ftp/python/3.10.4/python-3.10.4-macos11.pkg

I solved it by configuring the ENVIRONMENT. I added a line, alias python=/usr/local/bin/python3.10, into the .zshrc file (you must be sure it is the true path).


My 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

If you simply installed Python 3, just use python3 as the command instead of just python. In my case, I had to install pynev first via Homebrew (executable brew) using brew install pyenv.

But still after using pynev to install Python 2.7.18 and setting it as a global version using pyenv global 2.7.18, I still ran into an error while trying to run python.

What worked for me (since I already had Python 3 installed) was by changing my command to use python3 instead of just python. Of course, this won't be a solution to everyone who may want to use Python 2.

I have a MacBook Pro with an Apple M1 chip and macOS v12.4 (Monterey).

  • I deleted all Python versions and cleared the trash
  • Opened Terminal and typed "python"
  • This prompted an xcode.app update
  • Then I downloaded the latest version of Python from python.org (version 2.10.5)
  • Installed that version
  • Quit Terminal
  • Opened Terminal
  • Typed "python3"

It seems to now be there OK.

I installed Python then this error occurred and I just run

echo "alias python=/usr/bin/python3" >> ~/.zshrc

and I t worked.on macOS Monterey 12.4, Python 3.8.9

I use brew install brew install python@3.9, after installation success I want to know the version of python, I run command python --version, and I got the problem zsh: command not found: python.

If you install it successfully, please check in the terminal. It will show you if you got problem in install if not problem you just change command from python --version to python3 --version.

you should try

sudo ln -s /usr/bin/python3 /usr/local/bin/python

that solve my problem:)

Since you installed python3.9> (https://python.org/downloads/) , you just need to run everything with python3 instead of python. You don't have to downgrade your python to use it... It works fine with suffixing python with 3, i.e. python3 eg. $ which python3, python3 --version, $ python3 script.py etc

alias python=/usr/bin/python3

This command works but need to re-enter whenever we restart the termian

Try the command python3 --version if you have installed Python 3.

I just had this problem on a new Macbook Pro with macOS Monterey, and the below worked for me using Homebrew.

Using alias is not necessary when using Pyenv. Tested with Atom 1.60.0 and atom-python-run 0.9.7.

  1. Install pyenv (https://github.com/pyenv/pyenv#installation) and its dependencies (https://github.com/pyenv/pyenv/wiki#suggested-build-environment):

    brew install pyenv
    brew install openssl readline sqlite3 xz zlib tcl-tk
    
  2. Install Python 3.10.6 but I assume other 3.x versions should work as well:

    pyenv install 3.10.6
    
  3. Add Pyenv to your shell according to the instructions in https://github.com/pyenv/pyenv#set-up-your-shell-environment-for-pyenv. In your home directory:

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
    echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(pyenv init -)"' >> ~/.zshrc
    
  4. Make the installed Python available everywhere (this can be overridden per project or folder, if necessary):

    pyenv global 3.10.6
    

Now, the output looks like this:

% which python
/Users/jl/.pyenv/shims/python


% python --version
Python 3.10.6

If some scripts still fail, check that you have added Pyenv to the necessary shell startup file(s) as mentioned in step 3 above.

for 3.10.8

install with python with brew command

brew install python@3.10

if you have .zshrc file just edit like this

alias python='python3'

alias pip ='pip'

export PATH="/opt/homebrew/opt/python@3.10/libexec/bin:$PATH"

if you dont have .zshrc file:

cd

vi .zshrc

and copy/paste the line below

alias python='python3'

alias pip ='pip'

export PATH="/opt/homebrew/opt/python@3.10/libexec/bin:$PATH"

I had the same problem with fresh MacOS Ventura with Apple Silicon M1 Pro chip. Seems like brew installs to a different location than before on Apple Silicon?

/usr/bin/ folder had a Python executable and the version for it was 3.9.6.

So I installed Python using brew but then I had to execute it via python3 command so I ran echo "alias python=/opt/homebrew/bin/python3" >> ~/.zshrc and restarted my terminal. I was prompted with the desired version of Python when executing python command.