How to switch Python versions in Terminal?
Solution 1
The simplest way would be to add an alias to python3
to always point to the native python
installed. Add this line to the .bash_profile
file in your $HOME
directory at the last,
alias python="python3"
Doing so makes the changes to be reflected on every interactive shell opened.
Solution 2
As Inian suggested, you should alias python to point to python 3. It is very easy to do, and very easy to switchback, personally i have an alias setup for p2=python2 and p3=python3 as well to save on keystrokes. Read here for more information: How do I create a Bash alias?
Here is an example of doing so for python:
alias python=python3
Like so:
$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3
See here for the original: https://askubuntu.com/questions/320996/how-to-make-python-program-command-execute-python-3
Solution 3
You can just specify the python version when running a program:
for python 2:
python filename.py
for python 3:
python3 filename.py
Solution 4
pyenv
is a 3rd party version manager which is super commonly used (18k stars, 1.6k forks) and exactly what I looked for when I came to this question.
Install pyenv
.
Usage
$ pyenv install --list
Available versions:
2.1.3
[...]
3.8.1
3.9-dev
activepython-2.7.14
activepython-3.5.4
activepython-3.6.0
anaconda-1.4.0
[... a lot more; including anaconda, miniconda, activepython, ironpython, pypy, stackless, ....]
$ pyenv install 3.8.1
Downloading Python-3.8.1.tar.xz...
-> https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz
Installing Python-3.8.1...
Installed Python-3.8.1 to /home/moose/.pyenv/versions/3.8.1
$ pyenv versions
* system (set by /home/moose/.pyenv/version)
2.7.16
3.5.7
3.6.9
3.7.4
3.8-dev
$ python --version
Python 2.7.17
$ pip --version
pip 19.3.1 from /home/moose/.local/lib/python3.6/site-packages/pip (python 3.6)
$ mkdir pyenv-experiment && echo "3.8.1" > "pyenv-experiment/.python-version"
$ cd pyenv-experiment
$ python --version
Python 3.8.1
$ pip --version
pip 19.2.3 from /home/moose/.pyenv/versions/3.8.1/lib/python3.8/site-packages/pip (python 3.8)
Solution 5
If you have python various versions of python installed,you can launch any of them using pythonx.x.x
where x.x.x
represents your versions.
heapoverflow
Updated on January 05, 2022Comments
-
heapoverflow over 2 years
My Mac came with Python 2.7 installed by default, but I'd like to use Python 3.6.1 instead.
How can I change the Python version used in Terminal (on Mac OS)?
Please explain clearly and offer no third party version manager suggestions.