Clean the CLI, applications workflow & README

This commit is contained in:
Valentin Niess
2020-04-03 23:54:57 +02:00
parent 2c813fed06
commit 999fcf8083
4 changed files with 47 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
name: PyPI
name: Applications
on:
push:
paths:
@@ -21,12 +21,15 @@ jobs:
- name: Test scipy
run: |
python -m python_appimage build app applications/scipy
python -m python_appimage build app applications/scipy \
--python-version=2.7 \
--python-tag=cp27-cp27mu
test -e scipy-x86_64.AppImage
- name: Test tasmotizer
run: |
python -m python_appimage build app applications/tasmotizer
python -m python_appimage build app applications/tasmotizer \
--linux-tag=manylinux2014_x86_64
test -e tasmotizer-x86_64.AppImage
- name: Test xonsh

View File

@@ -1,7 +1,38 @@
# AppImage distributions of Python
_Work in progress - Check the [releases][RELEASES] area for available
AppImages._
_Ready to use AppImages of Python are available as GitHub [releases][RELEASES]._
## Quickstart
Our AppImages provide relocatable Python runtimes. Installation 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.8/python3.8.2-cp38-cp38-manylinux1_x86_64.AppImage
chmod +x python3.8.2-cp38-cp38-manylinux1_x86_64.AppImage
./python3.8 python3.8.2-cp38-cp38-manylinux1_x86_64.AppImage
```
This should run Python 3.8 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 installation mode described previously is enough if you only need vanilla
Python with its standard library. However, if you plan to install extra
packages we recommmed extracting the AppImage as:
```sh
./python3.8.2-cp38-cp38-manylinux1_x86_64.AppImage --appimage-extract
mv squashfs-root python3.8.2-cp38-cp38-manylinux1_x86_64.AppDir
ln -s python3.8.2-cp38-cp38-manylinux1_x86_64.AppDir/AppRun python3.8
```
Then, extra packages can be installed to the extracted AppDir using `pip`. E.g.
updating pip can be done as:
```sh
./python3.8 -m pip install -U pip
```
[RELEASES]: https://github.com/niess/python-appimage/releases

View File

@@ -62,6 +62,12 @@ def main():
help='path to the application metadata')
build_app_parser.add_argument('-n', '--name',
help='application name')
build_app_parser.add_argument('-l', '--linux-tag',
help='linux compatibility tag (e.g. manylinux1_x86_64)')
build_app_parser.add_argument('--python-tag',
help='python compatibility tag (e.g. cp37-cp37m)')
build_app_parser.add_argument('-p', '--python-version',
help='python version (e.g. 3.8)')
which_parser = subparsers.add_parser('which',
description='Locate a binary dependency')

View File

@@ -24,7 +24,8 @@ __all__ = ['execute']
def _unpack_args(args):
'''Unpack command line arguments
'''
return args.appdir, args.name
return args.appdir, args.name, args.python_version, args.linux_tag, \
args.python_tag
_tag_pattern = re.compile('python([^-]+)[-]([^.]+)[.]AppImage')