Выбор файла с помощью subprocess.call()
не повлияет на переменные окружения в Python, поскольку subprocess
запускает, ну, в общем, подпроцесс.
Вам нужно будет проанализировать файл самостоятельно, если выВы хотите повлиять на os.environ
в вашем интерпретаторе Python.
Поскольку ваш файл в стиле csh, в противном случае очень хороший модуль envparse
здесь не подойдет.
Тем не менее, вы могли бы вызвать
env = subprocess.check_output(['/bin/csh', '-c', 'source ~/global_setup; printenv'], shell=True)
и построчно проанализировать полученную переменную env
и добавить ее содержимое в os.environ
.Таким образом, условия в global_setup
также будут работать как ожидалось.