Solving problem is about exposing yourself to as many situations as possible like How to set Python’s default version to 3.x on OS X? and practice these strategies over and over. With time, it becomes second nature and a natural way you approach any problems in general. Big or small, always start with a plan, use other strategies mentioned here till you are confident and ready to code the solution.
In this post, my aim is to share an overview the topic about How to set Python’s default version to 3.x on OS X?, which can be followed any time. Take easy to follow this discuss.
I’m running Mountain Lion and the basic default Python version is 2.7. I downloaded Python 3.3 and want to set it as default.
$ python version 2.7.5 $ python3.3 version 3.3
How do I set it so that every time I run
$ python it opens 3.3?
Changing the default python executable’s version system-wide could break some applications that depend on python2.
However, you can alias the commands in most shells, Since the default shells in macOS (bash in 10.14 and below; zsh in 10.15) share a similar syntax. You could put
~/.profile, and then source
~/.profile in your
~/.bash_profile and/or your
~/.zsh_profile with a line like:
[ -e ~/.profile ] && . ~/.profile
This way, your alias will work across shells.
python command now invokes
python3. If you want to invoke the “original” python (that refers to python2) on occasion, you can use
command python, which will leaving the alias untouched, and works in all shells.
If you launch interpreters more often (I do), you can always create more aliases to add as well, i.e.:
alias 2='python2' alias 3='python3'
Tip: For scripts, instead of using a shebang like:
This way, the system will use python3 for running python executables.
You can solve it by symbolic link.
unlink /usr/local/bin/python ln -s /usr/local/bin/python3.3 /usr/local/bin/python
Open ~/.bash_profile file.
Then put the alias as follows:
Now save the file and then run the ~/.bash_profile file.
Congratulation !!! Now, you can use python3 by typing python.
Go to terminal type:
This will setup default python as python3.x
I’m a little late to the game on this one, but I thought I should post an updated answer since I just encountered this issue for myself. Please note that this will only apply to a Mac-based setup (I haven’t tried it with Windows or any flavor of Linux).
The simplest way to get this working is to install Python via Brew. If you don’t have brew installed, you will need to do that first. Once installed, do the following in at the terminal:
brew install python
This will install Python 3. After it’s installed, run this:
ls -l /usr/local/bin/python*
You will see all of the links created by brew to its Python install. It will look something like this:
lrwxr-xr-x 1 username admin 36 Oct 1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3 lrwxr-xr-x 1 username admin 43 Oct 1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config lrwxr-xr-x 1 username admin 38 Oct 1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7 lrwxr-xr-x 1 username admin 45 Oct 1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config lrwxr-xr-x 1 username admin 39 Oct 1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m lrwxr-xr-x 1 username admin 46 Oct 1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config
The first row in this example shows the
python3 symlink. To set it as the default
python symlink run the following:
ln -s -f /usr/local/bin/python3 /usr/local/bin/python
Once set, you can do:
and it should show:
You will have to reload your current terminal shell for it to use the new symlink in that shell, however, all newly opened shell sessions will (should) automatically use it. To test this, open a new terminal shell and run the following:
The following worked for me
cd /usr/local/bin mv python python.old ln -s python3 python
This worked for me. I added alias and restarted my terminal:
Go to ‘Applications’, enter ‘Python’ folder, there should be a bash script called ‘Update Shell Profile.command’ or similar. Run that script and it should do it.
Update: It looks like you should not update it: how to change default python version?