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

Etienne Trimaille etienne.trimaille at gmail.com
Tue Jul 13 07:33:54 PDT 2021


You might find something useful in this new repository :
https://github.com/haubourg/custom-osgeo4w-qgis/ ?

Le lun. 12 juil. 2021 à 10:54, Alexandre Neto <senhor.neto at gmail.com> a
écrit :

> 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
>>
> _______________________________________________
> 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/20210713/b55d0c2d/attachment-0001.html>


More information about the QGIS-Developer mailing list