PyAppShare is a cookbook for creating cross-platform desktop python applications in a moment: with shortcuts and info how to make sure Qt GUI is LGPL. It suggests end-user to install Miniconda and all you left to do is:
- Specify conda environment like in a
setup/env/def.yml
file by putting there all dependencies for your app (additional OS'es and pre/post scripts see insetup/env
), - Wrap your app as a python module (for example "app") using predefined template
app/setup.py
. You can also add dependencies there but it's redundant if you do not plan to distribute the module separately. Create additional exec entry point (for example "app-ready") using predefined templateapp/ready.py
that creates shortcuts and performs any additional user data manipulations after installation. - Write installation instructions for the end-user using predefined template
setup/README.md
, - Pack the whole setup folder (with
*.yml
env, python modules,README.md
, etc.) to zip archive and send to the end-user: rough and ready but accessible and easy. See example insetup/
dir.
- Simple template_app,
- More advanced Enaml video application.
- NEW: see example of how to build conda noarch package here (meta.yaml, build) that is based on the default conda-forge template.
- NEW: see example how to use pyappshare to maintain conda evironment here. This will automatically install conda environment by specification (env yaml spec post install bash script), register activated jupyter kernel and update the environment when install script is run again (via properly deleting the environment then creating it again).
- The templates
setup.py
files already have:- Cross-platform app shortcuts creation via shortcutter module for running the app and managing Miniconda installation. Shortcuts activate Miniconda environment (
app
in case ofenv/def.yml
) and launch the application (shortcuts activate environment independent of whether Miniconda was added to the PATH or not), - Sample code of PyQt stopper-debugger that helps to fix GPL licensing issues was added to the
app.py
. Actually these license issues are not that obvious...
- Cross-platform app shortcuts creation via shortcutter module for running the app and managing Miniconda installation. Shortcuts activate Miniconda environment (
- The template
setup/README.md
has install instructions for all platforms. Including how to:- Install Visual Studio compiler (for modules that need compiling and are not in conda defaults and conda-forge repos) - needed only if the app developer is lazy,
- Install Git (for installing modules from GitHub) - needed only if the app developer is lazy,
- Install Miniconda,
- Run install script.
The proposed user-side algorithm can be automated like in Miniconda-Install but I see no point in complicating things.
There are alternative implementations of app distribution elevating Conda ecosystem:
May be these projects would suit your needs better.