'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:

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:

The which command in terminal returns the following (which is odd because earlier it would return something to just 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:
- I reinstalled Monterey (not sure it was essential, but I just figured I had messed with terminal and
$PATHtoo much). - I installed
pythonviabrewrather than from the official website. It would still returncommand not founderror. - I ran
echo "alias python=/usr/bin/python3" >> ~/.zshrcin terminal to aliaspythonwithpython3.
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).
- Install
pyenvwithbrewto manage different python versions:brew install pyenv - List all installable versions with
pyenv install --list - Install python 2.7.18 with
pyenv install 2.7.18 - List installed versions with
pyenv versions - Set global python version with
pyenv global 2.7.18 - Add
eval "$(pyenv init --path)"to~/.zprofile(or~/.bash_profileor~/.zshrc, whichever you need) - 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 |
