Ready to use AppImages of Python are available as GitHub releases.
We provide relocatable Python runtimes as AppImages. These runtimes are extracted from manylinux Docker images. The corresponding images are available as GitHub releases. They are labeled according to wheels compatibility tags. Our Python AppImages are updated weekly.
Running Python from these AppImages is as simple as downloading a single file and changing its mode to executable, e.g. as:
wget https://github.com/niess/python-appimage/releases/download/\
python3.8/python3.8.5-cp38-cp38-manylinux1_x86_64.AppImage
chmod +x python3.8.5-cp38-cp38-manylinux1_x86_64.AppImage
./python3.8.5-cp38-cp38-manylinux1_x86_64.AppImage
This should start a Python 3.8 interactive session on almost any Linux
provided that fuse
is available. Note that on WSL1 since fuse
is not
supported you will need to extract the AppImage as explained hereafter.
The workflow described previously is enough if you only need vanilla Python with its standard library. However, if you plan to install extra packages we recommend extracting the AppImage, e.g. as:
./python3.8.5-cp38-cp38-manylinux1_x86_64.AppImage --appimage-extract
mv squashfs-root python3.8
rm -f python3.8.5-cp38-cp38-manylinux1_x86_64.AppImage
export PATH="$(pwd)/python3.8/usr/bin:$PATH"
Then, extra packages can be installed to the extracted AppDir using pip
. For
example upgrading pip can be done as:
pip install --upgrade pip
Python AppImages are built using the python_appimage
Python
package. You can get it from GitHub or PyPI. Examples of usage
can be found by browsing GitHub workflows.
The python_appimage
package also allows to build basic Python apps from an
existing Python AppImage and a recipe folder. The recipe folder contains the
app metadata, a Python requirements file and an entry point script. Examples of
recipes can be found on GitHub in the applications folder.
Alternatively, you can also manualy extract one of the Python AppImages
as explained above and directly modify the content, e.g. pip install
your custom
packages. Then, simply rebuild the AppImage using your favourite tool, e.g.
appimagetool, linuxdeploy or python-appimage
.
Projects using python-appimage
- grand/python - Contained, portable and modern python for GRAND running from an AppImage
- xxh - Bring your favorite shell wherever you go through the ssh
- xonsh - Python-powered, cross-platform, Unix-gazing shell language and command prompt
- rever - Cross-platform software release tool.