Python: импортировать файл конфигурации из каталога __file__?

У меня есть скрипт, содержащий, помимо прочего, следующую структуру. Является ли отрывок из "script_2.py" хорошим способом для импорта переменных из внешнего файла независимо от того, были ли изменены местоположение script_2.py и config.py (при условии, что они всегда будут "оставаться вместе")?

... Или я что-то упускаю и делаю это сложнее, чем должно быть?

# scrip_1.py
.
.
.
ThirdPartyBlackBoxProgramCall('somePath\\script_2.py')
.
.
.

,

# script_2.py
import os
import sys

folder_path = os.path.dirname(__file__)
sys.path.append(folder_path)
from config import A, B, C
.
.
.

,

# config.py
A = '111'
B = '222'
C = '333'

1 ответ

Решение

Подумайте об этом так - если ваш пакет установлен пользователем root в системный каталог - у пользователя нет возможности переопределить значения по умолчанию в вашем конфигурационном файле.

Вместо использования файла Python в качестве конфигурации, используйте реальный модуль конфигурации, такой как ConfigParser, а затем сделайте что-то вроде site.py, который выполняет поиск в системных каталогах, а затем домашний каталог пользователя.yourpackage.rc

Другие вопросы по тегам