Building Python 3.5 on Raspberry Pi 2 (Raspbian)
1. Problem
Problem: we want use the latest version of Python to run Flask and other fun stuff on our RPi 2 (mod. B). But only old version of Python (3.2) supported by apt-get.
We need to build and install our own build of latest Python release! So, our target will be Python 3.5.
Also, you may want to know What’s New In Python 3.5
UPD! You can follow procedures for Python 3.6 installation by following Building Python 3.6 on Raspberry Pi 3 from sources (clean Debian)
2. Solution
2.1. Preparation
2.1.1. SD card backup
You need make backup of whole SD card
On Windows you can use Win32DiskImager. This is GUI application and it's must be easy in use.
On Linux you can use dd:
$ sudo dd bs=4M if=/dev/sdb | gzip > /home/your_username/image`date +%d%m%y`.gz
This command will also compress your backup image with gzip. When you need to restore backed up image use this command:
$ gzip -dc /home/your_username/image.gz | sudo dd bs=4M of=/dev/sdb
2.1.2. Updating System
We need latest versions of everything on our system. So, let's update everything:
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade
Now we need install components which will be necessary for our Python build:
$ sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
$ sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
$ sudo apt-get install libssl-dev openssl
$ sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
$ sudo apt-get install libssl-dev openssl
2.2. Building Python
Now let's go home then download, build and install our new Python.
Going home:
$ cd ~
Retrieving source codes of Python 3.5 (downloading time depends on your connection width):
$ wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
Unpacking sources archive (it can take approx half a minute):
$ tar -zxvf Python-3.5.0.tgz
Going de-e-e-eper:
$ cd Python-3.5.0
Configuring (takes few minutes):
$ ./configure
Building (takes approx. 30 minutes):
$ make
Installing our own-built-python-release (few minutes for this operation):
$ sudo make install
2.3. Testing installation
If everything is OK you will be able to find python3.5 command by pressing TAB after printing python to your shell. Also, you can test installation by running command:
$ python3.5 --version
If everything is OK you will get output like this:
Python 3.5.0
Congratulations, now you have installed Python 3.5.
3. Installing pip
3.1. Installing pip
If you want to use pip for you Python 3.5 installation let's install it.
Going home:
$ cd ~
Downloading needful script:
$ wget https://bootstrap.pypa.io/get-pip.py
Running this script using our Python 3.5:
$ sudo python3.5 get-pip.py
3.2. Testing installed pip
Let's test just installed pip:
$ pip3.5 --version
We will get something like this:
pip 7.1.2 from /usr/local/lib/python3.5/site-packages (python 3.5)
Enjoy!
Thanks, really helpful to me.
ReplyDeleteThanks! BTW on Rapberry Pi 3 it took 15 min to compile it
ReplyDeleteI'm happy that it works on your RPi. Very fast compilation!
DeleteThanks a lot, it worked perfectly! Took approx. one and a half hour on raspberry 1 model b, so it took some patience but worked out in the end.
ReplyDeleteYou're welcome! Glad to help you.
Deletethanks alot man helped me alot for python good tutorial!
ReplyDeleteYou're welcome, man! I'm glad to help you!
DeleteHello, when using : 'sudo python3.5 get-pip.py' i'm getting an error saying it can't fetch the url because I don't have required TLS/SSL. Any help?
ReplyDeleteAs I can see, newer version of Python > 3.5.0 requires different procedure. I will fix it in newer blog-post. Newer Python version will be used, also will be fixed problem with TLS/SSL support. I will write it in few days. Thank you.
DeleteYou can follow this instructions:
Deletehttp://bohdan-danishevsky.blogspot.com/2017/01/building-python-360-on-raspberry-pi-3.html
Not working for me.
ReplyDeletesudo python3.5 get-pip.py
Results in an error:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting pip
Could not fetch URL https://pypi.python.org/simple/pip/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement pip (from versions: )
No matching distribution found for pip
Using the latest Raspbian PIXEL dated Nov 25, updated, upgraded, and dist-upgraded.
As I can see, newer version of Python > 3.5.0 requires different procedure. I will fix it in newer blog-post. Newer Python version will be used, also will be fixed problem with TLS/SSL support. I will write it in few days. Thank you.
DeleteYou can follow this instructions:
Deletehttp://bohdan-danishevsky.blogspot.com/2017/01/building-python-360-on-raspberry-pi-3.html