Переменные среды, настроенные с помощью Run или RunThrough , не влияют на само ядро Mathematica , но будут видны только процессам, запущенным в том же Run
или RunThrough
команда.
Если переменная окружения должна быть видимой для процесса ядра Mathematica , хак на основе gdb, описанный в принятом ответе на Есть ли способ изменить переменные среды другого процесса? может использоваться под Mac OS X:
SetEnvironment[var_String, value_String] := Module[{valueEscaped, cmd},
valueEscaped = StringTake[ToString[CForm[value]], {2, -2}];
cmd = "call (int) putenv (\"" <> var <> "=" <> valueEscaped <> "\")";
Put[OutputForm[cmd], "!gdb -n \"" <> First[$CommandLine] <> "\" " <> ToString[$ProcessID ]]
]
Команда Mathematica Put используется для запуска GDB и его присоединения к процессу ядра Mathematica . Команда gdb call (int) putenv ("var=value")
затем отправляется в gdb на stdin для установки переменной окружения с помощью putenv .
Предупреждение: в Mac OS X GDB доступен только в том случае, если установлены инструменты разработчика Xcode .