Специфичная для каталога переменная среды - PullRequest
0 голосов
/ 16 октября 2018

У меня есть система каталогов, подобная этой:

|- /root/path
  |- config.json
  |- script1.py
  |- a
    |- script2.py
  |- b
    |- c
      |- d
         |- script3.py

script1.py, script2.py и script3.py оба используют «корневой путь» (/ root / path) для работы.Прямо сейчас у меня есть "/ root / path", жестко запрограммированный в py-файлах.Скажем, однако, я переместил или переименовал корневой путь;Мне нужно было бы вернуться ко всем этим сценариям и изменить корневой путь.

Я знаю, что один из способов решить эту проблему - дать файлам .py представление об их относительном положении, например, script3.py читает с ../../../config.json.Тем не менее, в какой-то момент это становится действительно утомительным, особенно если настраивается много сценариев.

Мне интересно, есть ли способ сказать «любой сценарий, который находится в этом каталоге, который запускается откуда будет иметь доступ к некоторой переменной окружения ".Курсив "откуда угодно" выделен курсивом, потому что без этого ограничения я думаю, что direnv будет работать нормально.

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете определить переменную, такую ​​как my_root = '/ root / path' и определить все другие пути в вашем скрипте относительно my_root.Например,

config_json_path = os.path.join(my_root, 'config.json')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...