فهرست منبع

Clean the CLI, applications workflow & README

Valentin Niess 5 سال پیش
والد
کامیت
999fcf8083
4فایلهای تغییر یافته به همراه47 افزوده شده و 6 حذف شده
  1. 6 3
      .github/workflows/applications.yml
  2. 33 2
      README.md
  3. 6 0
      python_appimage/__main__.py
  4. 2 1
      python_appimage/commands/build/app.py

+ 6 - 3
.github/workflows/applications.yml

@@ -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

+ 33 - 2
README.md

@@ -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

+ 6 - 0
python_appimage/__main__.py

@@ -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')

+ 2 - 1
python_appimage/commands/build/app.py

@@ -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')