First than anything make sure you have uninstall and clean all other python installation tries if you've done any, otherwise the build might fail.
Install requirements
# You can copy/paste it on the terminal: sudo apt-get install -y build-essential \ checkinstall \ libreadline-gplv2-dev \ libncursesw5-dev \ libssl-dev \ libsqlite3-dev \ tk-dev \ libgdbm-dev \ libc6-dev \ libbz2-dev \ zlib1g-dev \ openssl \ libffi-dev \ python3-dev \ python3-setuptools \ wget
Prepare to build
mkdir /tmp/Python37 cd /tmp/Python37
Pull down Python 3.7, build, and install
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz tar xvf Python-3.7.0.tar.xz cd /tmp/Python37/Python-3.7.0 ./configure sudo make altinstall
Then you would just call Python like so:
python3.7 ./yourScript.py
Pip should have been installed with this installation as well. To install packages use this format:
pip3.7 --version
Bonus (conf aliases)
Install pip first:
sudo apt-get -y install python3-pip
check you have it: pip3 --version
Change aliases for python and pip:
If you type: python --version
it's most likely to give you 2.7 or other different than 3.7. To change this with a simple safe way would be to use an alias.
Place this into ~/.bashrc
and ~/.bash_aliases
file:
alias python=python3.7 alias python3=python3.7 alias pip=pip3.7 alias pip3=pip3.7
After adding the above in the file, run source ~/.bashrc
and source ~/.bash_aliases
now if you check: python --version
and pip --version
you'll see 3.7
To avoid the error below, export these paths:
export PYTHONHOME=/usr/local/lib/python3.7/
export PYTHONPATH=/usr/local/lib/python3.7/
Posible errors:
Unable to get the locale encoding
Here’s the complete error message:
# python3.7 Fatal Python error: Py_Initialize: Unable to get the locale encoding ImportError: No module named 'encodings' Current thread 0x00007ff41bf46700 (most recent call first): Aborted (core dumped)
Solution:
The problem might be due to multiple Python installations on your machine and the command ‘python3.7‘ might be referring to libraries that belong to a different version of Python. Well, there could be another reason – the command ‘python3.7‘ is not able to find PYTHON installation path. The below lines will be a good try for this error:
export PYTHONHOME=/usr/local/lib/python3.7/
export PYTHONPATH=/usr/local/lib/python3.7/
I hope it helps