← Back to team overview

ubuntu-phone team mailing list archive

Re: Packaging Python app as click package

 

Hi,

Some time ago i have made a template for ubuntu apps with python and
pyotherside. I don't know if it still works, but you can try.

https://github.com/dinkoosmankovic/ubuntu-sdk-app-python-template

Dinko

On Sun, 10 Jan 2016, 20:50 Ferdinand Holzner <ferdinandholzner@xxxxxxxxx>
wrote:

> There is pyotherside. It's a library which enables QML to use python
> stuff. But i never really figured out how this works.
>
> http://pyotherside.readthedocs.org/en/latest/
>
>
> Am 10.01.2016 um 20:40 schrieb Neil McPhail:
> > On Sat, January 9, 2016 2:29 pm, Sam Bull wrote:
> >> I'm trying to package a Python app as a click package, what do I need
> >> to make this work?
> >>
> >> Is it just a case of including the interpreter and libraries as part of
> >> the package, and setting my .desktop file to 'Exec=./python myapp.py'
> >> (assuming the Python binary to be in the root of the click package)?
> >>
> >> Also, what's the easiest way to get hold of the armhf binaries? I've
> >> been testing by just copying the files out of /usr/bin/python3 and
> >> /usr/lib/python3/ but obviously the binaries are amd64 on my laptop, so
> >> how would I get these files for armhf? Maybe copy them out of a VM?
> >>
> >> And, is the installed app location read-only? Specifically, is it
> >> better for me to include the __pycache__ in the package for
> >> performance, or will it be able to create it's own when it is run?
> >> (This saves about 6-7% of the package size)--
> >
> > Hi Sam
> >
> > I don't know what is best practice, but I've packaged GemRB, which is a C
> > and C++ program which calls python modules. I've taken the naive approach
> > and dumped an almost entire python runtime into a subdirectory of the
> > click and used a setup script ("run.sh") to set some environment
> variables
> > to point to the runtime. If I knew exactly what python libraries were
> > going to be called, I could probably trim the directory size
> > substantially. I would have to rethink the structure if I was going to
> > reformulate the .click as a "fat" package with AMD64 and i386 as well as
> > the ARM binaries.
> >
> > To obtain the python files, I set up a full ARM chroot environment as per
> >
> https://adoptingubuntu.wordpress.com/2015/07/10/creating-an-emulated-armhf-chroot-for-development/
> > and simply copied the python runtime files across. I've found it is quite
> > difficult to install all the python runtime in a traditional click chroot
> > as there are a lot of dependency issues between the amrhf and the amd64
> > packages, so a full chroot (as linked) has been easier. I'm sure there
> > will be some way to trick apt-get into downloading the armhf files
> without
> > going to such lengths, but I have the chroot anyway so it is a shame not
> > to use it.
> >
> > My app is called "bg1" and is up on the store. Feel free to have a poke
> > around: a click package can be expanded by running "dpkg-deb --extract
> > packagename.click .". If you find a better way to package python, let me
> > know. I'm sure my method could be improved.
> >
> > Good luck
> >
> > NMP
> >
> >
>
>
> --
> Mailing list: https://launchpad.net/~ubuntu-phone
> Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~ubuntu-phone
> More help   : https://help.launchpad.net/ListHelp
>

References