Доступ к файлу конфигурации с помощью pyinstaller, распространяемого на разных машинахPython

Программы на Python
Anonymous
Доступ к файлу конфигурации с помощью pyinstaller, распространяемого на разных машинах

Сообщение Anonymous »

У меня есть скрипт Python, который скомпилирован в exe-файл с помощью pyinstaller file.py --onedir и распространен на разные машины.
Теперь в моем файле file.py У меня есть несколько разных значений, которые следует настроить с помощью файла конфигурации в зависимости от того, на каком компьютере он установлен, и я не уверен, как лучше всего это сделать.
Моя конфигурация. ini выглядит так:

Код: Выделить всё

[Section1]
key1 = "\\path1\..."
key2 = "\\path2\..."
key3 = "\\path3\..."
В моем файле .py я получаю значения с помощью:

Код: Выделить всё

from configparser import ConfigParser

config = ConfigParser()
config.read("config.ini")

val1 = config.get('Section1', 'key1')
val2 = config.get('Section1', 'key2')
val3 = config.get('Section1', 'key3')

...
# the rest of my code
Моей мыслью было разместить файл конфигурации в одном месте, а не распространять его вместе с exe-файлом на разные машины. Однако проблема в том, что если exe-файлы выполняются одновременно и все извлекаются из одного и того же файла, то значения конфигурации, которые они получают, будут неправильными.
Моей следующей мыслью было распространять конфигурацию с помощью exe-файла, сохраняя при этом возможность редактирования конфигурации. Я не могу скомпилировать конфигурацию в exe, потому что она недоступна для редактирования. Но проблема, с которой я столкнулся, заключается в том, что все exe-файлы одинаковы. Поэтому в моем сценарии я не уверен, как найти каждый файл конфигурации, поскольку у них разные пути.
Каким будет хороший подход к использованию файла конфигурации с exe, если exe необходимо распространить на несколько компьютеров, для чего потребуются разные значения конфигурации?
Все, что я нашел в SO, пока не помогло в моем случае, поэтому любые предложения могут помочь.

Подробнее здесь: https://stackoverflow.com/questions/787 ... t-machines

Вернуться в «Python»