The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


Sailfish/Python Development

From Mer Wiki
< Sailfish(Difference between revisions)
Jump to: navigation, search
(Python 2.7.5 Modules)
Line 42: Line 42:
  
 
: <code>pkcon install python3-base</code>
 
: <code>pkcon install python3-base</code>
 +
 +
== Python 3 Modules ==
 +
 +
The community Python modules/packages can't be used as dependencies :
 +
 +
* [https://build.merproject.org/project/show/nemo:devel:mw Nemo:devel MW Mer project] :
 +
<nowiki>dbus-python3, python3-cairo, python3-gobject</nowiki>
 +
 +
* [https://build.merproject.org/project/show/home:MartinK:sailfish MartinK Sailfish Mer project] :
 +
<nowiki>dbus-python3, python3-lxml</nowiki>
 +
 +
* [https://build.merproject.org/project/show/home:rcolistete rcolistete Mer project] :
 +
<nowiki>python3-sympy, python3-uncertainties</nowiki>
 +
 +
* [https://build.merproject.org/project/show/home:thp:gpodder thp:gpodder Mer project] :
 +
<nowiki>python3-requests</nowiki>
  
 
= Python and Qt 5 =
 
= Python and Qt 5 =

Revision as of 03:28, 11 June 2014

Contents

Python 2

Python 2.7.5 is provided in the "jolla" repository, and can be installed using pkcon:

pkcon install python

Python 2.7.5 Modules

In default Jolla repositories, the modules below can be used as dependencies :

pygobject2, pyOpenSSL, python-M2Crypto, python-cairo, python-deltarpm, python-giscanner, python-imaging, python-lcms, python-lxml, python-magic, python-markdown, python-setuptools, python-sip, python-solve, python-tools, python-twisted, python-yaml, python-zope-interface

In mer-tools Jolla repository (which can be enabled), but consider that the majority of users will not enable it, so the modules below can't be used as dependencies :

pygpgme, python-cheetah, python-initparse, python-markdown, python-pycurl, python-pygments, python-urlgrabber, python-zypp

The community Python modules/packages can't be used as dependencies :

pygpgme, python-cheetah, python-docutils, python-imaging, python-initparse, python-jinja2, python-markdown, python-markupsafe, python-pycurl, python-pygments, python-sphinx, python-urlgrabber

python-docutils, python-imaging, python-jinja2, python-markupsafe, python-pygments, python-sphinx

python-beautifulsoup, python-coverage, python-cython, python-distribute, python-pip, python-pycurl, python-urlgrabber

python-htmltmpl, python-pycsw

python-beaker, python-mako, python-markupsafe, python-numpy

ipython, python-dateutil, python-jinja2, python-markupsafe, python-matplotlib, python-numpy, python-pyparsing, python-pytz, python-pyzmq, python-six, python-sympy, python-tornado, python-uncertainties

Python 3

Starting with Sailfish OS 1.0.3.8, Python 3.3.3 and PyOtherSide are shipped in the official repositories. Currently there is Python 3.4.0.

pkcon install python3-base

Python 3 Modules

The community Python modules/packages can't be used as dependencies :

dbus-python3, python3-cairo, python3-gobject

dbus-python3, python3-lxml

python3-sympy, python3-uncertainties

python3-requests

Python and Qt 5

There are different options for developing Python Qt 5 apps on Sailfish OS:

  • PyOtherSide: In official repositories, supports Qt 5 and Python 3. Will be supported in Harbour.
  • PyQt: Available from OpenRepos.net, supports Qt 5.
  • PySide: Not in official repositories or OpenRepos, as it doesn't support Qt 5 yet. If you need PySide-style bindings, use PyQt.

PyOtherSide (POS)

PyOtherSide homepage | PyOtherSide on github

Starting with Sailfish OS 1.0.3.8, PyOtherSide is now available in the official repos.

The PyOtherSide QML plugin can be installed directly without adding any addition repos using pkcon:

pkcon install pyotherside-qml-plugin-python3-qt5

PyQt

PyQt homepage | PyQt for Sailfish OS on OpenRepos.net


PyQt can be installed by adding the sailfish_lib repo:

ssu addrepo sailfish_lib http://sailfish.openrepos.net/sailfish_lib/personal/main
ssu updaterepos
pkcon refresh sailfish_lib

For Python 2:

pkcon install pyqt

For Python 3:

pkcon install python-pyqt

POS vs PyQt

Coding

POS is a QML plugin which means that you'll have to start your program from a few lines of C++ code and from your QML code you import the POS plugin and from there you import your Python modules. PyQt basically is a 1:1 glue layer for the Qt C++ API so you just use it as you would use any other Python module. If all you need from Qt is QML then you could happily stick to POS, if you need more than that then you would need to use PyQt.

License

POS is distributed under non copy-left conditions which means that your code could use any license you like. PyQt is distributed under the GPLv3 license so your code must use that license too or buy a commercial license from Riverbank Computing.

Publishing

POS applications you can publish on Openrepos without having to deal with third party repos. And Harbour will accept POS apps in a not so distant future. PyQt will probably never be accepted in Harbour so Openrepos is your only option for now.

Software

Using PyOtherSide :

Using PyQt :

Links


  1. TMO: xerxes2 packages PyQt for Sailfish OS
Personal tools