[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