-
-
Save danidask/bddcdf54ab8b933f674054f4916377b7 to your computer and use it in GitHub Desktop.
Installing Python 3.6 on Raspbian
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Installing Python 3.6 on Raspbian | |
================================= | |
As of January 2018, Raspbian does not yet include the latest Python release, Python 3.6. This means we will have to build | |
it ourselves, and here is how to do it. There is also an ansible role attached that automates it all for you. | |
1. Install the required build-tools (some might already be installed on your system). | |
.. code-block:: bash | |
$ sudo apt-get update | |
$ 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 | |
If one of the packages cannot be found, try a newer version number (e.g. ``libdb5.4-dev`` instead of ``libdb5.3-dev``). | |
2. Download and install Python 3.6. When downloading the source code, select the most recent release of Python 3.6, available | |
on the `official site <https://www.python.org/downloads/source/>`_. Adjust the file names accordingly. | |
.. code-block:: bash | |
$ wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz | |
$ tar xf Python-3.6.8.tar.xz | |
$ cd Python-3.6.8 | |
$ ./configure --enable-shared | |
$ make | |
$ sudo make altinstall | |
3. 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. | |
.. code-block:: bash | |
$ sudo rm -r Python-3.6.8 | |
$ rm Python-3.6.8.tar.xz | |
$ sudo apt-get --purge remove build-essential tk-dev | |
$ sudo apt-get --purge remove libncurses5-dev libncursesw5-dev libreadline6-dev | |
$ sudo apt-get --purge remove libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev | |
$ sudo apt-get --purge remove libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev | |
$ sudo apt-get autoremove | |
$ sudo apt-get clean | |
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 file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# An ansible role to configure python3.6 on a Raspberry Pi. | |
# to get started, ensure you have ansible installed: | |
# $ sudo apt install ansible | |
# Then run this playbook: | |
# $ ansible-playbook -i localhost, python3.6.yml | |
# Then you can get started: | |
# $ python3.6 | |
# | |
--- | |
- hosts: all | |
vars: | |
version: 3.6.8 | |
threads: 4 | |
tasks: | |
- name: "python{{version}} runtime&build dependencies" | |
become: yes | |
apt: name={{item}} | |
with_items: | |
- 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 | |
- name: "Download python{{version}}" | |
get_url: | |
url="https://www.python.org/ftp/python/{{version}}/Python-{{version}}.tar.xz" | |
dest="/tmp/Python-{{version}}.tar.xz" | |
- name: "Unarchive python{{version}}" | |
unarchive: | |
src="/tmp/Python-{{version}}.tar.xz" | |
dest="/tmp/" | |
copy=no | |
creates="/tmp/Python-{{version}}" | |
- name: "configure python{{version}} build" | |
command: ./configure --enable-shared | |
args: | |
chdir: "/tmp/Python-{{version}}" | |
creates: "/tmp/Python-{{version}}/Makefile" | |
- name: "build python{{version}}" | |
# not using make module to be able to use -j and creates option to fully skip step | |
command: make -j{{threads}} | |
args: | |
chdir: "/tmp/Python-{{version}}" | |
creates: "/tmp/Python-{{version}}/python" | |
- name: "install python{{version}}" | |
become: yes | |
make: | |
chdir: "/tmp/Python-{{version}}" | |
target: altinstall |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment