Metadata-Version: 2.1
Name: python-appimage
Version: 0.34
Summary: Appimage releases of Python
Home-page: https://github.com/niess/python-appimage
Author: Valentin Niess
Author-email: valentin.niess@gmail.com
License: GPLv3
Download-URL: https://pypi.python.org/pypi/python-appimage
Project-URL: Bug Tracker, https://github.com/niess/python-appimage/issues
Project-URL: Source Code, https://github.com/niess/python-appimage
Platform: Linux
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >=2.7
Description-Content-Type: text/markdown

# AppImage distributions of Python

_Ready to use AppImages of Python are available as GitHub [releases][RELEASES]._

## Quickstart

We provide relocatable Python runtimes as [AppImages][APPIMAGE]. These runtimes
are extracted from [manylinux][MANYLINUX] Docker images. The corresponding
images are available as GitHub [releases][RELEASES]. They are labeled according
to [wheels][WHEEL] compatibility tags. Our Python AppImages are updated
weekly.

Running Python from these [AppImages][APPIMAGE] is as simple as downloading a
single file and changing its mode to executable, e.g.  as:

```sh
wget https://github.com/niess/python-appimage/releases/download/\
python3.9/python3.9.1-cp39-cp39-manylinux1_x86_64.AppImage
chmod +x python3.9.1-cp39-cp39-manylinux1_x86_64.AppImage

./python3.9.1-cp39-cp39-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:

```sh
./python3.9.1-cp39-cp39-manylinux1_x86_64.AppImage --appimage-extract
mv squashfs-root python3.9
rm -f python3.9.1-cp39-cp39-manylinux1_x86_64.AppImage

export PATH="$(pwd)/python3.9/usr/bin:$PATH"
```

Then, extra packages can be installed to the extracted AppDir using `pip`. For
example upgrading pip can be done as:

```sh
pip install --upgrade pip
```

## For applications developers

Python [AppImages][APPIMAGE] are built using the `python_appimage` Python
package. You can get it from [GitHub][GITHUB] or [PyPI][PYPI]. Examples of usage
can be found by browsing GitHub [workflows][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][APPLICATIONS] folder.

Alternatively, you can also manualy extract one of the Python [AppImages][APPIMAGE]
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][APPIMAGETOOL], [linuxdeploy][LINUXDEPLOY] or `python-appimage`.

## Projects using [python-appimage][PYTHON_APPIMAGE]
* [grand/python](https://github.com/grand-mother/python) - Contained, portable
  and modern python for [GRAND][GRAND] running from an AppImage
* [xxh](https://github.com/xxh/xxh) - Bring your favorite shell wherever you go
  through the ssh 
* [xonsh](https://github.com/xonsh/xonsh) - Python-powered, cross-platform, Unix-gazing 
  shell language and command prompt
* [rever](https://github.com/regro/rever) - Cross-platform software release tool.


[APPIMAGE]: https://appimage.org
[APPIMAGETOOL]: https://appimage.github.io/appimagetool
[APPLICATIONS]: https://github.com/niess/python-appimage/tree/master/applications
[GITHUB]: https://github.com/niess/python-appimage
[LINUXDEPLOY]: https://github.com/linuxdeploy/linuxdeploy
[MANYLINUX]: https://github.com/pypa/manylinux
[PYPI]: https://pypi.org/project/python-appimage
[RELEASES]: https://github.com/niess/python-appimage/releases
[WHEEL]: https://pythonwheels.com
[WORKFLOWS]: https://github.com/niess/python-appimage/tree/master/.github/workflows
[GRAND]: http://grand.cnrs.fr
[PYTHON_APPIMAGE]: https://github.com/niess/python-appimage


