[QGIS-Developer] Using environment variables in QGIS.ini

Bo Victor Thomsen bo.victor.thomsen at gmail.com
Mon Jul 12 08:40:00 PDT 2021


Hi Alexandre -

Thanks for the heads-up regarding initialisation scripts and global 
settings file.

Med venlig hilsen / Kind regards

Bo Victor Thomsen

Den 12-07-2021 kl. 10:54 skrev Alexandre Neto:
> Hi Bo,
>
> This is some old stuff we wrote at Boundless, I believe it still 
> applies for QGIS today.
>
> https://boundless-desktop.readthedocs.io/en/latest/system_admins/index.html#for-system-administrators 
> <https://boundless-desktop.readthedocs.io/en/latest/system_admins/index.html#for-system-administrators>
>
> Both initialisation scripts and global setting file can help you with 
> what you want to achieve.
>
> (I should make sure this information is available on docs.qgis.org 
> <http://docs.qgis.org>, but I never find the time to do it...)
>
> Best regards,
>
> Alexandre Neto
> User Support
> www.qcooperative.net <http://www.qcooperative.net>
>
> A segunda, 12/07/2021, 08:34, Bo Victor Thomsen 
> <bo.victor.thomsen at gmail.com <mailto:bo.victor.thomsen at gmail.com>> 
> escreveu:
>
>     Hi Thomas -
>
>     Your suggestion is actually pretty close to the solution I made -
>
>       * Standard installation of QGIS with /standard/ .msi package.
>       * After the QGIS installation and before QGIS is started the
>         user do a one-time run a Python script from et central network
>         drive -  using the Python interpreter installed together with
>         QGIS  which:
>           o Unzip a complete profile  with specific plugins and
>             customized parameters from a central network based
>             repository. This profile replaces the standard "default"
>             profile.
>           o Search/replace a couple of "tokenized" values in QGIS.ini
>             with actual values based on username
>
>     The profile and tokenized QGIS.ini is prepared by the GIS
>     administrator
>
>     The Python script is packaged in a .cmd file which is started by
>     the user.
>
>     Not a perfect solution, but doable:
>
>       * The It department is happy: No work doing specialized
>         installations
>       * The GIS administrator is happy. It's a one-time piece of work
>         for each QGIS version to  prepare the profile and tokenize the
>         QGIS.ini
>       * The user is - somewhat - happy. To finish the installation is
>         simply to double-click once on a file placed in a "highly
>         visible" location.
>       * Any subsequent mistakes made by the user (Installation of
>         dodgy plugins, strange changes in setups ....) is easily
>         repaired by running the Python script again.
>
>
>     Med venlig hilsen / Kind regards
>
>     Bo Victor Thomsen
>
>     Den 12-07-2021 kl. 03:14 skrev Thomas Gratier:
>>     Hi,
>>
>>     I'm not aware QSettings provided by Qt can do it. Your %APPDATA%
>>     is not portable as would only work on Windows
>>
>>     You can always try generate the QGIS.ini file using a templating
>>     system
>>
>>     File QGIS.ini.j2 with following content
>>
>>     Configuration\MODELS_FOLDER={{APPDATA}}\\QGIS\\QGIS3\\profiles\\default\\processing\\models
>>     Configuration\SCRIPTS_FOLDERS={{APPDATA}}\\QGIS\\QGIS3\\profiles\\default\\processing\\scripts
>>
>>
>>     File generate_ini.py with following content
>>
>>     import os
>>     import jinja2
>>
>>     templateLoader = jinja2.FileSystemLoader(searchpath="./")
>>     templateEnv = jinja2.Environment(loader=templateLoader)
>>     TEMPLATE_FILE = "QGIS.ini.j2"
>>     template = templateEnv.get_template(TEMPLATE_FILE)
>>     mydict = {
>>         "APPDATA": os.environ.get("APPDATA")
>>     }
>>     outputText = template.render(**mydict)
>>     with open('QGIS.ini', 'w') as outputfile:
>>         outputfile.write(outputText)
>>
>>     Then, to write your QGIS.ini file, do
>>
>>
>>     python3 generate_ini.py
>>
>>
>>     The possible deal breakers with this approach are:
>>     - you depend from jinja2, a third party Python library,
>>     - you can't later reuse the mechanism if for instance QGIS
>>     changes the QGIS.ini file later on
>>
>>
>>     Regards
>>
>>     Thomas
>>
>>
>>     Le mar. 6 juil. 2021 à 09:18, Bo Victor Thomsen
>>     <bo.victor.thomsen at gmail.com
>>     <mailto:bo.victor.thomsen at gmail.com>> a écrit :
>>
>>         To the list -
>>
>>         Is there a method to use OS (Linux, Windows...) environment
>>         variables in the QGIS.ini setup file ?
>>
>>         I had a number of customers asking for a method to
>>         "generalize" QGIS.ini, so it doesn't contain any "user"
>>         specific file and directory references, i.e
>>
>>         (From qgis.ini)
>>
>>         Configuration\MODELS_FOLDER=*C:\\Users\\Bo Victor
>>         Thomsen\\AppData\\Roaming*\\QGIS\\QGIS3\\profiles\\default\\processing\\models
>>         Configuration\SCRIPTS_FOLDERS=*C:\\Users\\Bo Victor
>>         Thomsen\\AppData\\Roaming*\\QGIS\\QGIS3\\profiles\\default\\processing\\scripts
>>
>>         could be:
>>
>>         Configuration\MODELS_FOLDER=*%APPDATA%*\\QGIS\\QGIS3\\profiles\\default\\processing\\models
>>         Configuration\SCRIPTS_FOLDERS=*%APPDATA%*\\QGIS\\QGIS3\\profiles\\default\\processing\\scripts
>>
>>         or likewise.
>>
>>         The ultimate reason is to have a method to distribute a
>>         "standard" setup for QGIS, complete with plugins and
>>         specialized setup parameters. This can be done by making a
>>         standard QGIS installation (which the IT departments love,
>>         especially with the new .msi package) and afterwards replace
>>         the "default" profile directory with at  directory specific
>>         for the organisation. However, the process of making the new
>>         profile will place a lot of file/directory references in
>>         QGIS.ini that is specific for the super-user developing the
>>         new profile.
>>
>>         -- 
>>         Med venlig hilsen / Kind regards
>>
>>         Bo Victor Thomsen
>>
>>         _______________________________________________
>>         QGIS-Developer mailing list
>>         QGIS-Developer at lists.osgeo.org
>>         <mailto:QGIS-Developer at lists.osgeo.org>
>>         List info:
>>         https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>         <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>>         Unsubscribe:
>>         https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>         <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>>
>     _______________________________________________
>     QGIS-Developer mailing list
>     QGIS-Developer at lists.osgeo.org <mailto:QGIS-Developer at lists.osgeo.org>
>     List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>     <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>     Unsubscribe:
>     https://lists.osgeo.org/mailman/listinfo/qgis-developer
>     <https://lists.osgeo.org/mailman/listinfo/qgis-developer>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20210712/e2991b2a/attachment.html>


More information about the QGIS-Developer mailing list