Updating Python on Mac

Viewed 568648

I wanted to update my python 2.6.1 to 3.x on mac but I was wondering if it's possible to do it using the terminal or I have to download the installer from python website?

I am asking this question because the installer is not updating my terminal python version.

23 Answers

Both python 2x and 3x can stay installed in a MAC. Mac comes with python 2x version. To check the default python version in your MAC, open the terminal and type-

python --version

However to check, if you have already installed any of python 3x versions, you need to type

python3 --version

If you don't then go ahead and install it with the installer. Go the the python's official site(https://www.python.org/downloads/), download the latest version

enter image description here

and install it.

Now restart the terminal and check again with both commands-

enter image description here

Hope this helps.

  1. brew install python --> install the latest Python.
  2. ls -l /usr/local/bin/python* --> List all Python versions installed on your system.
  3. ln -s -f /usr/local/bin/python[your-latest-version-just-installed] /usr/local/bin/python --> Change default Python version to the latest version.
  • E.g: ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python
  1. Restart terminal.
  2. python --version --> Check Python version default again.

Ref: https://dev.to/malwarebo/how-to-set-python3-as-a-default-python-version-on-mac-4jjf

This article helped me to make the right choices eventually since mac 10.14.6 by default came with python 2.7* and I had to upgrade to 3.7.*

brew install python3
brew update && brew upgrade python
alias python=/usr/local/bin/python3

Referred The right and wrong way to set Python 3 as default on a Mac article

Easiest way is

 brew update && brew upgrade python

I was having the same problem, but then after a bit of research I tried

brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python

in terminal

A warning message will pop-up saying that python 3.7.0. is already installed but it's not linked so type the command brew link python and hit enter and hope things work right for you

Its always best to use homebrew to update or install python. In terminal type:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

This will install homebrew (it takes sometime depending on your internet speed)

Then, in terminal, type

brew update

This will first update brew (you don't have to do that if you already have the latest version)

then type

brew upgrade python

This brew will update python to the latest viable version.

That should do it.

Sometimes when you install Python from the install wizard on MAC it will not link to your bash profile. Since you are using homebrew, just to brew install python This would install the latest version of Python and then to link them brew link python@3.9

You can also use:

brew upgrade python3

If it were me, I would just leave it as it is. Use python3 and pip3 to run your files since python and python3 can coexist.

brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python

You can use the above line but it might have unintended consequences.

I recommend using pyenv to manage your local python versions (both 2.x and 3.x) instead of installing new versions directly with homebrew or building new python versions from source manually. Essentially, pyenv can do two key things for you:

  • Install different python versions under some directory. Doing pyenv install 3.8.1 will install python 3.8.1 under ~/.pyenv/versions/3.8.1.
  • Modify your shell environment (PATH) with shims so that when you do pyenv local 3.8.1, calling python will invoke the new interpreter instead of your system python.

MacOSX Specific Installation

The pyenv repo is pretty detailed on how to install for different systems and what it's actually doing, but here's the basic steps for mac:

  1. Install homebrew if you don't already have it and use it to install pyenv with brew install pyenv
  2. Once you have pyenv installed, update your .bash_profile file to include:
if command -v pyenv 1>/dev/null 2>&1; then
    eval "$(pyenv init -)"
fi

Now install some python using pyenv and then switch to it with the pyenv local command (you can see all your versions with pyenv versions).

pyenv install 3.8.1 && pyenv local 3.8.1

Note: you may need to create a new shell or reload your bash_profile in your current shell for the pyenv initialization to do its thing (set up shims).

With this setup, you'll be able to keep your system macosx python and switch to whatever new version of python you want available through pyenv.

Install Home brew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install python 3 brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python

Update python to latest version ln -s -f /usr/local/bin/python[your-latest-version-just-installed] /usr/local/bin/python

First, install Homebrew (The missing package manager for macOS) if you haven': Type this in your terminal

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Now you can update your Python to python 3 by this command
brew install python3 && cp /usr/local/bin/python3 /usr/local/bin/python

Python 2 and python 3 can coexist so to open python 3, type python3 instead of python

That's the easiest and the best way.

On a mac use the following in the terminal to update python if you have anaconda:

conda update python

You can do it from Terminal too. It's quite easy. You just need to type python3 --version and

Install JDK latest Version

export $JAVA_HOME=/usr
export $PATH=${JAVA_HOME}/bin:$PATH

java --version

sudo apt install python3.9

python3 --version
Related