How do I make Python 3.5 my default version on MacOS?
Solution 1
Since Python 2 and 3 can happily coexist on the same system, you can easily switch between them by specifying in your commands when you want to use Python 3.
So for Idle, you need to type idle3
in the terminal in order to use it with Python 3 and idle
for using it with Python 2.
Similarly, if you need to run a script or reach a python prompt from the terminal you should type python3
when you want to use Python 3 and python
when you want to use Python 2.
Solution 2
It's good practice to have your MacOS Python environment set up properly from the beginning making sure that Homebrew installations take precedence over stock MacOS binaries. You want it in usr/local/bin
not MacOS default usr/bin
.
.bash_profile
# Ensure user-installed binaries take precedence
export PATH=/usr/local/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
Can also create aliases for both.
alias py2='python2.7'
alias py3='python3.6'
Source the file to ensure it takes effect for the current session
source ~/.bash_profile
Homebrew install and setup etc...
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor
brew update
brew upgrade --all
brew cleanup
Python3 install
brew install python3
Next
pip3 install virtualenv
Next
pip3 install virtualenvwrapper
When all is finished python3
, pip3
, virtualenv
, and virtualenvwrapper.sh
will all be in usr/local/bin
.
Result
Every time I install anything or use commands like mkvirtualenv
Python 3 is used by default.
Solution 3
You can use the python3
command (instead of using python
), or you can simply uninstall the 2.7 version if you don't use it
Solution 4
You can switch to any python version in your project by creating a virtual environment.
- virtualenv -p /usr/bin/python2.x (or python 3.x)
In case you just want to run a program in a specific version just open shell and enter python2.x or python3.x
Solution 5
Do right thing, do thing right!
Open your terminal,
input
python -V
, It likely shows:Python 2.7.10
input
python3 -V
, It likely shows:Python 3.7.2
input
where python
orwhich python
, It likely shows:/usr/bin/python
input
where python3
orwhich python3
, It likely shows:/usr/local/bin/python3
add the following line at the bottom of your PATH environment variable file in ~/.profile file or ~/.bash_profile under Bash or ~/.zshrc under zsh.
alias python='/usr/local/bin/python3'
OR
alias python=python3
input source ~/.bash_profile under Bash or source ~/.zshrc under zsh.
Quit the terminal.
Open your terminal, and input
python -V
, It likely shows:Python 3.7.2
Note, the ~/.bash_profile under zsh is not that ~/.bash_profile.
The PATH environment variable under zsh instead ~/.profile (or ~/.bash_file) via ~/.zshrc.
Hope this helped you all!
user3798654
Updated on July 09, 2022Comments
-
user3798654 almost 2 years
I have just installed Python 3.5.1 on my Mac (running the latest version of OSX). My system came with Python 2.7 installed. When I type
IDLE
at the Terminal prompt my system pulls up the original Python 2.7 rather than the newly installed Python 3.5. How do I get my system to default to Python 3.5.1 when I open the IDLE window from Terminal? -
user3798654 over 8 yearsHello, Thank you for your response. I am not clear on how to uninstall 2.7. Where would I use the python3 command. To access python in idle I just type idle at the terminal prompt.
-
user3798654 over 8 yearsHi Thank you for your response. How do I use another path python3 to launch IDLE? Thanks, George
-
msw over 8 yearsBecause I have to use both for boring reasons
alias p2=/path/to/python2
andalias p3
. in~/.bashrc
or~/.bash_aliases
is both explicit and saves typing. I'm also fond of ipython soip2
andip3
are aliases also. -
user3798654 over 8 yearsI don't understand you post. Would you please expand on your explanation. Thanks, George
-
user3798654 over 8 yearsThank you very much. Typing idle3 at the terminal prompt was exactly what I was looking for. Sincerely, George
-
Roland Smith over 8 yearsDo not remove the Python2.7 that comes with OS-X. It depends on it.
-
TheParam about 5 yearsHighlight the code and keep answer short and simple thank you
-
Arefe about 5 yearsThe Mac OS needs Python 2.7 and you can't uninstall it. Maybe you can uninstall if the 2.7 was installed with
brew
or similar tools.