'How to fix "zsh: command not found: python" error? (macOS Monterey 12.3, python 3.10, Atom IDE, atom-python-run 0.9.7)

Since I got Monterey 12.3 update (not sure it's related though), I have been getting this error when I try to run my python code in the terminal: python not found error

I am using python 3.10.3, Atom IDE, and run the code in terminal via atom-python-run package (which used to work perfectly fine). The settings for the package go like this: atom-python-run-settings

The which command in terminal returns the following (which is odd because earlier it would return something to just which python): which python

I gather the error occurs because the terminal calls for python instead of python3, but I am super new to any coding and have no idea why it started now and how to fix it. Nothing of these has worked for me:

  • I deleted and then reinstalled python from python.org.
  • I tried alias python='python3' (which I saw in one of the threads here).
  • I tried export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" (which I found here).
  • To reset zsh and paths, I deleted all associated hidden files in /local/users/ and ran the terminal once again.
  • I deleted evetyrhing and reinstalled macos and python only to get the same error.


Solution 1:[1]

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.

Solution 2:[2]

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.

Solution 3:[3]

If you simply installed python3 just use python3 as the command instead of just python. In my case I had to install pynev first via 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 python3 installed) is 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.

Solution 4:[4]

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.(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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Kig
Solution 2 Bernd Kampl
Solution 3 Alvin Wanjala
Solution 4 Lu Roman