'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
$PATH
too much). - I installed
python
viabrew
rather than from the official website. It would still returncommand not found
error. - I ran
echo "alias python=/usr/bin/python3" >> ~/.zshrc
in terminal to aliaspython
withpython3
.
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
pyenv
withbrew
to 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_profile
or~/.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 |