Reputation: 20175
I want to completely remove Python 2.7 from my Mac OS X 10.6.4. I managed to remove the entry from the PATH
variable by reverting my .bash_profile
. But I also want to remove all directories, files, symlinks, and entries that got installed by the Python 2.7 install package. I've got the install package from http://www.python.org/. What directories/files/configuration file entries do I need to remove? Is there a list somewhere?
Upvotes: 455
Views: 1141413
Reputation: 851
This one works:
cd /usr/local/bin/
ls -l /usr/local/bin | \
grep '../Library/Frameworks/Python.framework/Versions/2.7' | \
awk '{print $9}' | \
tr -d @ | \
xargs rm
Description:
It list all the links, removes @
character and then removes them.
Upvotes: 81
Reputation: 101
Install the new python version using brew install python In .bash_profile or .zprofile create an alias like this: alias python="/usr/local/bin/python3" Done.
Upvotes: -1
Reputation: 85025
/System/Library
and /usr/bin
, as this may break your whole operating system.NOTE: The steps listed below do not affect the Apple-supplied Python 2.7; they only remove a third-party Python framework, like those installed by python.org installers.
The complete list is documented here. Basically, all you need to do is the following:
Remove the third-party Python 2.7 framework
sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
Remove the Python 2.7 applications directory
sudo rm -rf "/Applications/Python 2.7"
Remove the symbolic links, in /usr/local/bin
, that point to this Python version. See them using
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7'
and then run the following command to remove all the links:
cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
/Library/Frameworks/Python.framework/Versions/2.7
to your PATH
environment file. Depending on which shell you use, any of the following files may have been modified:
~/.bash_login
, ~/.bash_profile
, ~/.cshrc
, ~/.profile
, ~/.tcshrc
, ~/.zshrc
, and/or ~/.zprofile
.Upvotes: 957
Reputation: 1237
On a MacOS where python3
was installed with brew
:
sudo ln -s -f /opt/homebrew/bin/python3 /usr/local/bin/python
sudo ln -s -f /opt/homebrew/bin/pip3 /usr/local/bin/pip
Reopen terminal
python --version
pip --version
Upvotes: 8
Reputation: 31
Caution when trying to remove certain python library, Mac OS needs python! DO NOT remove any Python versions in the following folders:
/usr/bin
system/Library
These Python 2.7 versions are installed by Apple and used by Mac OS and other software. Deleting Python from these directories can break your system.
Upvotes: 1
Reputation: 9568
This is what worked for me on Mac OS
Download the latest Python 3.x from https://www.python.org/downloads/mac-osx/
Install Python 3.x by going through the Installation Steps that show up when you click on the installer
ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python
ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip
Open a new terminal window and verify python --version
. Should say 3.x
For step 3, confirm the path for your existing python executable by checking the output of which python
Upvotes: 5
Reputation: 1034
Here you will see all the preinstalled versions of python including 2.3, 2.4 and even 2.7.
/System/Library/Frameworks/Python.framework/Versions
But, even with sudo I do not think so, you will be able to remove them. You will get an error - Operation not permitted
Upvotes: 0
Reputation: 219
I faced the same problem when upgrading to python 3.9 from python 2.7.16 Just install the new python version using brew install python or download and install for your OS then
sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
sudo rm -rf "/Applications/Python 2.7"
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7'
then check -> python --version
in your .bash_profile
create an alias pointing to the new python version; like this:
alias python="/usr/local/bin/python3"
then save and run source ~/.bash_profile
.
check -> python --version
all set now
Upvotes: 12
Reputation: 1577
Create the symlink to latest version
ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python
Close and open a new terminal
and try
python --version
Upvotes: 64
Reputation: 4373
If you're thinking about manually removing Apple's default Python 2.7, I'd suggest you hang-fire and do-noting: Looks like Apple will very shortly do it for you:
Python 2.7- as well as Ruby & Perl- are deprecated in Catalina: (skip to section "Scripting Language Runtimes" > "Deprecations")
https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes
Indeed, if you do nothing at all, according to The Mac Observer, by OSX version 10.16, Python 2.7 will disappear from your system:
https://www.macobserver.com/analysis/macos-catalina-deprecates-unix-scripting-languages/
Given this revelation, I'd suggest the best course of action is do nothing and wait for Apple to wipe it for you. As Apple is imminently about to remove it for you, doesn't seem worth the risk of tinkering with your Python environment.
NOTE: I see the question relates specifically to OSX v 10.6.4, but it appears this question has become a pivot-point for all OSX folks interested in removing Python 2.7 from their systems, whatever version they're running.
Upvotes: 2
Reputation: 2623
No need to uninstall it or going crazy with symbolic links, just use an alias
. I faced the same problem when upgrading to python 3.7.1.
Just install the new python version using brew install python
then in your .bash_profile
create an alias pointing to the new python version; like this: alias python="/usr/local/bin/python3"
then save and run source ~/.bash_profile
.
Done.
Upvotes: 14
Reputation: 8001
Trying to uninstall Python with
brew uninstall python
will not remove the natively installed Python but rather the version installed with brew
.
Upvotes: 32
Reputation: 173
Note: If you installed Python using Homebrew, then you can follow the following steps, otherwise look for another solution!
To uninstall Python 2.7.10 which you installed using Homebrew, then you can simply issue the following command:
brew uninstall python
Similarly, if you want to uninstall Python 3 (which you installed using Homebrew):
brew uninstall --force python3
Upvotes: 4
Reputation: 166
Onur Güzel provides the solution in his blog post, "Uninstall Python Package from OS X.
You should type the following commands into the terminal:
sudo rm -rf /Library/Frameworks/Python.framework
cd /usr/local/bin
ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm
sudo rm -rf "/Applications/Python x.y"
where command x.y is the version of Python installed. According to your question, it should be 2.7.
In Onur's words:
WARNING: This commands will remove all Python versions installed with packages. Python provided from the system will not be affected.
If you have more than 1 Python version installed from python.org, then run the fourth command again, changing "x.y" for each version of Python that is to be uninstalled.
Upvotes: 6
Reputation: 129
In regards to deleting the symbolic links, I found this to be useful.
find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
Upvotes: 12
Reputation: 1130
If you installed it using the PKG installer, you can do:
pkgutil --pkgs
or better:
pkgutil --pkgs | grep org.python.Python
which will output something like:
org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7
you can now select which packages you will unlink (remove).
This is the unlink documentation:
--unlink package-id
Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
to double check.
In my example you will type
pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7
or in one single line:
pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink
Important: --unlink is not available anymore starting with Lion (as of Q1`2014 that would include Lion, Mountain Lion, and Mavericks). If anyone that comes to this instructions try to use it with lion, should try instead to adapt it with what this post is saying: https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X
Upvotes: 32
Reputation: 9671
No need to uninstall old python versions.
Just install new version say python-3.3.2-macosx10.6.dmg and change the soft link of python to newly installed python3.3
Check the path of default python and python3.3 with following commands
"which python" and "which python3.3"
then delete existing soft link of python and point it to python3.3
Upvotes: 8