From Wikipedia:
Python is a widely used high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than possible in languages such as C++ or Java. The language provides constructs intended to enable writing clear programs on both a small and large scale.
Python supports multiple programming paradigms, including object-oriented, imperative and functional programming or procedural styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library.
Python 2 Installation
Download on your host the python2 package for armv7h from the arch linux arm repositories. Uncompress the .pkg.tar.xz
in a folder, it will contain a usr
directory, plus some hidden files.
Login into your reMarkable and create the following directories:
$ mkdir -p /home/root/.localpackages/python2-2.7.14-1-armv7h $ mkdir /home/root/.bin
We want to keep each package in a separate subfolder inside .localpackages
, and inside .bin
we will add the shellscripts necessary to launch the binaries from the command line.
On your host, copy the usr
directory to the reMarkable:
$ scp -r ~/Downloads/python2-2.7.14-1-armv7h/usr root@10.11.99.1/home/root/.localpackages/python2-2.7.14-1-armv7h
On the reMarkable, create a file named python2
inside /home/root/.bin
:
- /home/root/.bin/python2
#!/bin/sh LD_LIBRARY_PATH=/home/root/.localpackages/python2-2.7.14-1-armv7h/usr/lib:$LD_LIBRARY_PATH /home/root/.localpackages/python2-2.7.14-1-armv7h/usr/bin/python2 "$@"
You can also add a python
symlink:
$ cd /home/root/.bin $ ln -s python2 python
Finally, if you want to be able to run python directly from the command line, add the following line to your .bashrc
:
- /home/root/.bashrc
... PATH=$PATH:/home/root/.bin ...
Log out and log in on your reMarkable, and you should have a working python installation.
Python 3 Installation
To install python 3 you need to find which glibc version your remarkable device is running. For example, for a Remarkable running 2.1.1.3, I used this command to determine my glibc version.
root@remarkable:~# /lib/libc.so.6 --version GNU C Library (GNU libc) stable release version 2.27.
You see from above the version is 2.27.
The visit http://tardis.tiny-vps.com/aarm/packages/g/glibc/ and find the earliest and latest dates for that version and armv7h architecture in this list: eg
glibc-2.27-2-armv7h.pkg.tar.xz 2018-Apr-15 07:02:32 8.1M application/x-xz ... glibc-2.27-3-armv7h.pkg.tar.xz 2018-May-06 23:53:48 8.1M application/x-xz
From this list you can see that 2.27 glibc was available between Apr 15th and May 6th 2018. Now go to http://tardis.tiny-vps.com/aarm/packages/p/python/ and locate all the python 3 packages between those dates. Again be sure to choose architecture armv7h.
python-3.6.5-1-armv7h.pkg.tar.xz 2018-Apr-17 05:16:25 16.3M application/x-xz ... python-3.6.5-2-armv7h.pkg.tar.xz 2018-Apr-25 05:26:46 16.4M application/x-xz
Copy the latest url to a clipboard. In this case it's http://tardis.tiny-vps.com/aarm/packages/p/python/python-3.6.5-2-armv7h.pkg.tar.xz. You can download this link directly onto your remarkable using wget and untar it using “tar xf” to a safe directory and follow similar instructions to the python 2 ones above.
Known Issues
There probably are a number of things that does not work. If you find something that is not functioning properly, please add it here following the template.
Issue Brief Description
Change the title of the section with a description of the issue, e.g. “numpy not working” or “missing xy module”
Workaround
If you find a solution/workaround to the issue, please add it here so that others can use it.