Completely uninstall Python 3.10 on Mac

Viewed 6431

I installed Python 3.10 on Mac and installed some packages as well. But then I see AWS lamda does not support Python 3.10 so I decided to downgrade. I removed Python3.10 folder in Applications and cleared the trash. But still I see a folder named 3.10 in /Library/Frameworks/Python.framework/Versions which is causing problems, such as this:

  $ python3 -m pip install virtualenv
 Requirement already satisfied: virtualenv in      /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (20.14.1)
 Requirement already satisfied: platformdirs<3,>=2 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from virtualenv) (2.5.2) 

So my question is how do I completely uninstall python 3.10 from my Mac?

2 Answers

Removing the app does not completely uninstall that version of Python. You will need to remove the framework directories and their symbolic links.

Deleting the frameworks

sudo rm -rf /Library/Frameworks/Python.framework/Versions/[version number] replacing [version number] with 3.10 in your case.

Removing symbolic links

To list the broken symbolic links.

ls -l /usr/local/bin | grep ‘../Library/Frameworks/Python.framework/Versions/[version number]’

And to remove these links:

cd /usr/local/bin

ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/[version number]' | awk '{print $9}' | tr -d @ | xargs rm*

As always, please be wary of copying these commands. Please make sure the directories in the inputs are actual working directories before you execute anything.

The general idea in the end is to remove the folders and symlinks, and you're good to go.

Here is another response addressing this process: How to uninstall Python 2.7 on a Mac OS X 10.6.4?

# The version of Python that you want to delete
python_version_number=3.10
sudo rm -rf /Library/Frameworks/Python.framework/Versions/${python_version_number}/
sudo rm -rf "/Applications/Python ${python_version_number}/"
cd /usr/local/bin && ls -l | grep "/Library/Frameworks/Python.framework/Versions/${python_version_number}" | awk '{print $9}' | sudo xargs rm
Related