A Weird Python Command Not Found Problem

Problem Statement

I met a weird problem with the following output:

$ python
pyenv: python: command not found

The `python' command exists in these Python versions:
  3.9.11

Note: See 'pyenv help global' for tips on allowing both
      python2 and python3 to be found.

What happened??? I just took a nap and turned my computer back on, why did python get lost???

Resolution

Ok... Let me check these paths: /usr/bin and /usr/local/bin :

$ ls /usr/bin /usr/local/bin | grep python
python3

OMG! ONLY python3 EXISTS!

At that moment, I started to recall if I did anything stupid which removed the system python by mistake.

After half an hour of useless attempts, it flashed through my mind that I had just upgraded to macOS Monterey 12.3.1 before I went to sleep, and let me check the release notes:

Python

Deprecations

  • Python 2.7 was removed from macOS in this update. Developers should use Python 3 or an alternative language instead. (39795874)

Now the truth is out, Apple took a shot at me.

This problem can be fixed simply as I have had another python3 installed by Homebrew.

$ brew install python3
-- snip --
Warning: python@3.9 3.9.12 is already installed and up-to-date.
To reinstall 3.9.12, run:
  brew reinstall python@3.9

And now you can simply create a symbolic link to it by:

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

Finally, try python again:

$ python
Python 3.9.12 (main, Mar 26 2022, 15:44:31)
[Clang 13.1.6 (clang-1316.0.21.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Conclusion

Maybe I should read every release note carefully before I click UPGRADE NOW.

Reference

Last updated