Команда запуска Python csh
В последнее время я хочу использовать скрипт Python для установки среды в Linux. Это одна строка моего кода:
p = subprocess.call(['/bin/csh', '-c', "source setup.csh"])
Мой файл setup.csh находится ниже:
add questa10.2b
add ds5-2013.06
setenv MODELSIM modelsim.ini
Но когда я запускаю свой python, он показывает, что файлы получены на экране, но оказывается, что я должен набрать себя в командной строке.
Как я мог решить эту проблему? Кто-нибудь может помочь мне с этим?
1 ответ
Вы создаете новый csh
Оболочка как подпроцесс, а затем запускает ваши команды внутри этой оболочки, которая затем завершается. Команды не запускаются и не влияют на родительскую оболочку, в которой работает Python. Когда вы просто запускаете команды самостоятельно, они влияют на текущую оболочку.
Если вам нужно, чтобы эти настройки сохранялись в вашей текущей оболочке после завершения работы Python, лучше всего в общем случае source setup.csh
вместо того, чтобы помещать это в сценарий Python. Если другим дочерним процессам скрипта Python нужны переменные среды, вы можете изменить os.environ
,