[QGIS-Developer] non-standard-library Python modules available to QGIS plugins

Raphael Das Gupta raphael.das.gupta at hsr.ch
Tue Apr 23 08:09:37 PDT 2019


Thanks Jürgen and Saber for your insights!

On 23.04.19 14:53, Jürgen E. Fischer wrote:
> Yes, control.in lists the dependencies that installed with the (debian) package
> - and those are the only ones you can actually rely on (installing via pip
> might not work everywhere and shouldn't be done anyway for packages the
> distribution already can provide).
>
> I don't know of any other documentation (except for the osgeo4w qgis-full*
> setup.hint files - that are essentially the same thing [0])

Is it, though? As far as I can see that includes SciPy and Shapely, 
which the control.in file 
(https://github.com/qgis/QGIS/blob/master/debian/control.in) doesn't.


> - and if there was
> it would problably be old and out of sync.

So it seems there is no authoritative source that the Debian/Ubuntu 
package definitions, OSGeo4W and the OS X installer (and all the plugin 
developers) can rely on as a common base. Doesn't this lead to 
compatibility problems?

On 23.04.19 15:11, Saber Razmjooei wrote:
> You can find all the Python 3 modules we are packaging with macOS 
> installer here:
> https://lutraconsulting.github.io/qgis-mac-packager/

This list (under "Used Python3 modules") seems to include even more than 
the OSGeo4W one does. Some of those might be build-only dependencies 
(though, are they then available at plugin runtime anyway?) or effects 
of differing packaging granularity, others are maybe indirect 
dependencies that the `*.deb` based systems (and OSGeo4W?) would pull in 
transitively, but I guess not all can be explained by that. So I'm 
pretty sure that QGIS plugins on different platforms will have a 
different set of modules available.

I've posted a comparison of control.in vs. setup.hint vs. 
lutraconsulting installer at 
https://github.com/NixOS/nixpkgs/issues/59842#issuecomment-485832623 
(Click "Details" in that comment to see it.)

It seems to me like currently, plugin developers have to limit 
themselves to a common subset of these if they want their plugins to be 
interoperable between different QGIS installations of the same version. 
Do they do that? Do they even know?

For the time being, I think I'll use the Debian/Ubuntu dependencies as a 
guideline for NixOS, as both are Linux operating systems. For 
simplicity, I'll probably at least initially leave out PyQt5.QtWebKit 
though, hoping that no plugins actually use it.

Kind regards,
Raphael



More information about the QGIS-Developer mailing list