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

Alexandre Neto senhor.neto at gmail.com
Mon Jul 12 01:54:31 PDT 2021


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

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, but I
never find the time to do it...)

Best regards,

Alexandre Neto
User Support
www.qcooperative.net

A segunda, 12/07/2021, 08:34, Bo Victor Thomsen <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:
>    - Unzip a complete profile  with specific plugins and customized
>       parameters from a central network based repository. This profile replaces
>       the standard "default" profile.
>       - 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> 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
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: 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/4ab26a21/attachment-0001.html>


More information about the QGIS-Developer mailing list