[QGIS-Developer] Plugin dependency with binaries: 'best' way to guide user to install?

Aron Gergely aron.gergely at rasterra.nl
Wed Apr 6 05:01:15 PDT 2022


@Pedro:
Tried it today on Windows w OSGeo QGIS and failed right away. But in a 
different way:

If I launch OSGeo QGIS and ask for the python executable's path 
(sys.executabe), I get 'C:/OSGeo4W/bin/qgis-bin.exe'. which looks like 
entry point is for QGIS.  So subprocess calls that and a new QGIS window 
opens.

Not feeling like tackling this and probably other cases.
So back to download+including those bins I reckon.

@Johannes:
Thank you. Yes realizing that now..


Cheers,
Aron



On 06-04-2022 12:12, Johannes Kröger (WhereGroup) wrote:
>
> Trying to find a smart way to install Python dependencies for the 
> users that will not potentially not work or even break stuff is a very 
> hard thing(tm). Check out these two QEPs for a lot of discussion and 
> possible approaches:
>
> https://github.com/qgis/QGIS-Enhancement-Proposals/issues/202
> https://github.com/qgis/QGIS-Enhancement-Proposals/issues/179
>
> Cheers, Hannes
>
> Am 06.04.22 um 00:10 schrieb Pedro Camargo via QGIS-Developer:
>> Hey Aron,
>>                    I did explore that route, but I found out that it 
>> would fail when the user did not have administrator rights (or even 
>> if QGIS had not been ran as administrator on Windows).  Did you find 
>> it to be different?
>>
>> Cheers,
>> Pedro
>>
>>
>>
>> ---- On Wed, 06 Apr 2022 03:28:09 +1000 *Aron Gergely 
>> <aron.gergely at rasterra.nl>* wrote ----
>>
>>     Thank you, I checked out your plugin - yes that seems also a good
>>     way.
>>     I already had the logic to detect, throw message, guide to
>>     dialog, etc... implemented similar to yours.
>>
>>     But I wanted to let pip manage the actual package, so I went with
>>     the subprocess+pip route. Here is a minimum working example:
>>
>>     import subprocess
>>     import sys
>>
>>
>>     try:
>>          subprocess.check_call((sys.executable, '-m', 'pip', 'install', 'h3<=3.99'))
>>     except subprocess.CalledProcessErroras e:
>>          raise e# handle any errors here instead
>>
>>     I connected it to a button in a dialog. And catch stdout, stderr
>>     and the exit code of the subprocess so I can show the user what
>>     is happening.
>>
>>     Have not yet tried on other platforms than Linux. But
>>     sys.executable is there to solve the ambiguity of python
>>     executable path.
>>
>>
>>     Best regards,
>>     Aron
>>
>>
> -- 
> Johannes Kröger / GIS-Entwickler/-Berater
>
> ---------------------------------------------
> Schon gewusst?

> In unserem Blog geben wir Tipps & Tricks zu Open-Source-GIS-Software
> und berichten aus unserem Experten-Alltag:
> https://wheregroup.com/blog/
> ---------------------------------------------
>
> WhereGroup GmbH
> Grevenweg 89
> 20537 Hamburg
> Germany
>
> Tel: +49 (0)228 / 90 90 38 - 36
> Fax: +49 (0)228 / 90 90 38 - 11
>
> johannes.kroeger at wheregroup.com
> www.wheregroup.com
> Geschäftsführer:
> Olaf Knopp, Peter Stamm
> Amtsgericht Bonn, HRB 9885
> -------------------------------
-- 
Email Signature Kind Regards,

Aron Gergely
+31 (0) 6 38 70 97 66

*Rasterra* | www.rasterra.nl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20220406/5b6d3a91/attachment.html>


More information about the QGIS-Developer mailing list