As of July 2018, Raspbian does not yet include the latest Python release, Python 3.7.4. This means we will have to build it ourselves, and here is how to do it.
Install the required build-tools (some might already be installed on your system).
sudo apt-get update -y sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -y
If one of the packages cannot be found, try a newer version number (e.g.
libdb5.4-dev
instead oflibdb5.3-dev
).Download and install Python 3.7.4. When downloading the source code, select the most recent release of Python, available on the official site. Adjust the file names accordingly.
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz tar xf Python-3.7.4.tar.xz cd Python-3.7.4 ./configure make -j 4 sudo make altinstall
Optionally: Delete the source code and uninstall the previously installed packages. When uninstalling the packages, make sure you only remove those that were not previously installed on your system. Also, remember to adjust version numbers if necesarry.
sudo rm -r Python-3.7.4 rm Python-3.7.4.tar.xz sudo apt-get --purge remove build-essential tk-dev -y sudo apt-get --purge remove libncurses5-dev libncursesw5-dev libreadline6-dev -y sudo apt-get --purge remove libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev -y sudo apt-get --purge remove libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev -y sudo apt-get autoremove -y sudo apt-get clean
or simply copy the setup.sh content to a file called setup.sh, do a chmod +x setup.sh and execute the script via sudo ./setup.sh
Afterwards, execute any of your scripts (yourscript.py is just a placeholder) using
python3.7 yourscript.py.
This guide is pretty much taken from the following tutorial: https://liudr.wordpress.com/2016/02/04/install-python-on-raspberry-pi-or-debian/ and https://gist.github.com/BMeu/af107b1f3d7cf1a2507c9c6429367a3b
this doesn't work for me
Using: Raspberry Pi 3B+ and freshly installed raspbian stretch
checking build system type... armv7l-unknown-linux-gnueabihf
checking host system type... armv7l-unknown-linux-gnueabihf
checking for python3.7... no
checking for python3... python3
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in '/home/pi/Python-3.7.3':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use '--host'.
See 'config.log' for more details