Spec-Zone.ru › Julia 1.8

Переменные окружения

Julia можно настроить с помощью ряда переменных окружения, задаваемых стандартным для каждой операционной системы способом или портативным способом внутри Julia. Предположим, что вы хотите установить переменную окружения JULIA_EDITOR в значение vim, вы можете ввести ENV["JULIA_EDITOR"] = "vim" (например, в REPL), чтобы внести это изменение, или добавить это в файл конфигурации пользователя ~/.julia/config/startup.jl в домашнем каталоге пользователя, чтобы произвести постоянное изменение. Текущее значение этой же переменной окружения можно определить, вычислив ENV["JULIA_EDITOR"].

Переменные окружения, используемые Julia, обычно начинаются с JULIA. Если InteractiveUtils.versioninfo вызывается со ключевым словом verbose=true, то вывод будет содержать список всех определенных переменных окружения, относящихся к Julia, включая те, которые содержат JULIA в своих именах.

Некоторые переменные, такие как JULIA_NUM_THREADS и JULIA_PROJECT, должны быть установлены перед запуском Julia, поэтому добавление их в ~/.julia/config/startup.jl произойдет слишком поздно в процессе запуска. В Bash переменные окружения можно установить вручную, выполнив, например, export JULIA_NUM_THREADS=4 перед запуском Julia, или добавив эту команду в ~/.bashrc или ~/.bash_profile, чтобы переменная устанавливалась каждый раз при запуске Bash.

Расположение файлов

JULIA_BINDIR

Абсолютный путь к каталогу, содержащему исполняемый файл Julia, который задаёт глобальную переменную Sys.BINDIR. Если $JULIA_BINDIR не задано, Julia определяет значение Sys.BINDIR во время выполнения.

Сам исполняемый файл является одним из

$JULIA_BINDIR/julia
$JULIA_BINDIR/julia-debug

по умолчанию.

Глобальная переменная Base.DATAROOTDIR определяет относительный путь от Sys.BINDIR к каталогу данных, связанному с Julia. Затем путь

$JULIA_BINDIR/$DATAROOTDIR/julia/base

определяет каталог, в котором Julia первоначально ищет исходные файлы (через Base.find_source_file()).

Аналогично, глобальная переменная Base.SYSCONFDIR определяет относительный путь к каталогу конфигурационного файла. Затем Julia ищет файл startup.jl в

$JULIA_BINDIR/$SYSCONFDIR/julia/startup.jl
$JULIA_BINDIR/../etc/julia/startup.jl

по умолчанию (через Base.load_julia_startup()).

Например, в Linux-установке с исполняемым файлом Julia, расположенным по адресу /bin/julia, каталогом DATAROOTDIR значения ../share и каталогом SYSCONFDIR значения ../etc переменная JULIA_BINDIR будет установлена в значение /bin, путь поиска исходных файлов будет

/share/julia/base

а путь поиска глобальных конфигурационных файлов будет

/etc/julia/startup.jl

JULIA_PROJECT

Путь к каталогу, указывающий, какой проект должен быть активным по умолчанию. Установка этой переменной окружения имеет тот же эффект, что и указание параметра запуска --project, но --project имеет больший приоритет. Если переменная установлена в @., Julia пытается найти каталог проекта, содержащий файл Project.toml или JuliaProject.toml в текущем каталоге и его родительских каталогах. См. также главу о Загрузке кода.

JULIA_PROJECT должно быть определено перед запуском julia; определение его в startup.jl произойдёт слишком поздно на этапе запуска.

JULIA_LOAD_PATH

Переменная окружения JULIA_LOAD_PATH используется для заполнения глобальной переменной Julia LOAD_PATH, которая определяет, какие пакеты можно загрузить через import и using (см. Загрузку кода).

В отличие от переменной оболочки PATH, пустые элементы в JULIA_LOAD_PATH расширяются до значения по умолчанию LOAD_PATH, ["@", "@v#.#", "@stdlib"] при заполнении LOAD_PATH. Это позволяет легко добавлять, вставлять и т.д. значение пути загрузки в сценарии оболочки независимо от того, установлено ли значение JULIA_LOAD_PATH или нет. Например, чтобы добавить каталог /foo/bar в начало LOAD_PATH, просто выполните

export JULIA_LOAD_PATH="/foo/bar:$JULIA_LOAD_PATH"

Если переменная окружения JULIA_LOAD_PATH уже установлена, её старое значение будет добавлено в начало с помощью /foo/bar. С другой стороны, если JULIA_LOAD_PATH не установлена, она будет установлена в /foo/bar:, что приведёт к добавлению LOAD_PATH значения ["/foo/bar", "@", "@v#.#", "@stdlib"] в начало. Если JULIA_LOAD_PATH установлена в пустую строку, она расширяется до пустого массива LOAD_PATH. Другими словами, пустая строка интерпретируется как массив нулевой длины, а не как массив из одного элемента, состоящего из пустой строки. Такое поведение было выбрано для того, чтобы было возможно установить пустой путь загрузки через переменную окружения. Если вам нужен путь загрузки по умолчанию, либо снимите переменную окружения, либо, если она должна иметь значение, установите её в строку :.

В Windows элементы пути разделены символом ;, как и в большинстве списков путей в Windows. Замените : на ; в абзаце выше.

JULIA_DEPOT_PATH

Переменная окружения JULIA_DEPOT_PATH используется для заполнения глобальной переменной Julia DEPOT_PATH, которая управляет тем, где менеджер пакетов, а также механизмы загрузки кода Julia ищут реестры пакетов, установленные пакеты, именованные среды, клоны репозиториев, кэшированные скомпилированные изображения пакетов, файлы конфигурации и расположение по умолчанию файла истории REPL.

В отличие от переменной оболочки PATH, но аналогично JULIA_LOAD_PATH, пустые элементы в JULIA_DEPOT_PATH расширяются до значения по умолчанию DEPOT_PATH. Это позволяет легко добавлять, вставлять и т.д. значение пути хранилища в сценариях оболочки независимо от того, установлено ли значение JULIA_DEPOT_PATH или нет. Например, чтобы добавить каталог /foo/bar в начало DEPOT_PATH, просто выполните

export JULIA_DEPOT_PATH="/foo/bar:$JULIA_DEPOT_PATH"

Если переменная окружения JULIA_DEPOT_PATH уже установлена, её старое значение будет добавлено в начало с помощью /foo/bar. С другой стороны, если JULIA_DEPOT_PATH не установлена, она будет установлена в /foo/bar:, что повлияет на добавление /foo/bar в начало пути хранилища по умолчанию. Если JULIA_DEPOT_PATH установлена в пустую строку, она расширяется до пустого массива DEPOT_PATH. Другими словами, пустая строка интерпретируется как массив нулевой длины, а не как массив из одного элемента, состоящего из пустой строки. Такое поведение было выбрано для того, чтобы было возможно установить пустой путь хранилища через переменную окружения. Если вам нужен путь хранилища по умолчанию, либо снимите переменную окружения, либо, если она должна иметь значение, установите её в строку :.

В Windows элементы пути разделены символом ;, как и в большинстве списков путей в Windows. Замените : на ; в абзаце выше.

JULIA_HISTORY

Абсолютный путь REPL.find_hist_file() к файлу истории REPL. Если $JULIA_HISTORY не установлена, то REPL.find_hist_file() по умолчанию

$(DEPOT_PATH[1])/logs/repl_history.jl

JULIA_MAX_NUM_PRECOMPILE_FILES

Устанавливает максимальное количество различных экземпляров одного пакета, которые будут храниться в кэше предварительной компиляции (по умолчанию = 10).

Pkg.jl

JULIA_CI

Если установлено в true, это указывает серверу пакетов, что любые операции с пакетами являются частью системы непрерывной интеграции (CI) для сбора статистики использования пакетов.

JULIA_NUM_PRECOMPILE_TASKS

Количество параллельных задач, используемых при предварительной компиляции пакетов. См. Pkg.precompile.

JULIA_PKG_DEVDIR

Директория по умолчанию, используемая Pkg.develop для загрузки пакетов.

JULIA_PKG_IGNORE_HASHES

Если установлено в 1, это проигнорирует неверные хэши в артефактах. Это следует использовать с осторожностью, так как это отключает проверку загрузок, но может решить проблемы при перемещении файлов между различными типами файловых систем. Подробности см. в вопросе #2317 на GitHub.

Это поддерживается только в Julia 1.6 и выше.

JULIA_PKG_OFFLINE

Если установлено в true, это включит автономный режим: см. Pkg.offline.

Автономный режим Pkg требует Julia 1.5 или более поздней версии.

JULIA_PKG_PRECOMPILE_AUTO

Если установлено в 0, это отключит автоматическую предварительную компиляцию действиями пакета, которые изменяют манифест. См. Pkg.precompile.

JULIA_PKG_SERVER

Указывает URL реестра пакетов, который следует использовать. По умолчанию, Pkg использует https://pkg.julialang.org для получения пакетов Julia. Кроме того, вы можете отключить использование протокола PkgServer и вместо этого получить доступ к пакетам напрямую с их хостов (GitHub, GitLab и т. д.) путём установки: export JULIA_PKG_SERVER=""

END_OF_DOCUMENT_MARKER

JULIA_PKG_SERVER_REGISTRY_PREFERENCE

Указывает предпочтительный тип реестра. В настоящее время поддерживаются значения conservative (по умолчанию), которые будут публиковать только ресурсы, обработанные сервером хранения (и, следовательно, с большей вероятностью будут доступны на PkgServers), тогда как eager будет публиковать реестры, ресурсы которых необязательно были обработаны серверами хранения. Пользователям за ограниченными брандмауэрами, которые не позволяют загружать файлы с произвольных серверов, не следует использовать вариант eager.

Это влияет только на Julia 1.7 и выше.

JULIA_PKG_UNPACK_REGISTRY

Если установлено значение true, это распакует реестр вместо сохранения его в виде сжатого архива tarball.

Это влияет только на Julia 1.7 и выше. Более ранние версии всегда распакуют реестр.

JULIA_PKG_USE_CLI_GIT

Если установлено значение true, операции Pkg, использующие протокол git, будут использовать внешнюю утилиту git вместо стандартной библиотеки libgit2.

Использование утилиты git поддерживается только в Julia 1.7 и выше.

JULIA_PKGRESOLVE_ACCURACY

Точность решателя пакетов. Должно быть положительным целым числом, по умолчанию 1.

Транспорт сети

JULIA_NO_VERIFY_HOSTS / JULIA_SSL_NO_VERIFY_HOSTS / JULIA_SSH_NO_VERIFY_HOSTS / JULIA_ALWAYS_VERIFY_HOSTS

Указывает хосты, идентификаторы которых должны или не должны проверяться для определённых слоёв транспорта. См. NetworkOptions.verify_host

JULIA_SSL_CA_ROOTS_PATH

Указывает файл или директорию, содержащие корневые сертификаты центров сертификации. См. NetworkOptions.ca_roots

Внешние приложения

JULIA_SHELL

Абсолютный путь к оболочке, которую Julia должна использовать для выполнения внешних команд (через Base.repl_cmd()). По умолчанию используется переменная среды $SHELL, а в качестве резервного варианта используется /bin/sh, если $SHELL не задана.

В Windows эта переменная среды игнорируется, и внешние команды выполняются непосредственно.

JULIA_EDITOR

Редактор, возвращаемый InteractiveUtils.editor() и используемый, например, в InteractiveUtils.edit, указывая на команду предпочтительного редактора, например vim.

$JULIA_EDITOR имеет приоритет над $VISUAL, которая, в свою очередь, имеет приоритет над $EDITOR . Если ни одна из этих переменных среды не задана, тогда редактором будет open в Windows и OS X, или /etc/alternatives/editor если оно существует, или emacs в противном случае.

Для использования Visual Studio Code в Windows, установите $JULIA_EDITOR на code.cmd.

Параллелизация

JULIA_CPU_THREADS

Переопределяет глобальную переменную Base.Sys.CPU_THREADS, количество доступных логических ядер процессора.

JULIA_WORKER_TIMEOUT

Значение типа Float64, устанавливающее значение Distributed.worker_timeout() (по умолчанию: 60.0). Эта функция задаёт количество секунд, в течение которого процесс-работник будет ожидать подключения процесса-мастера перед завершением.

JULIA_NUM_THREADS

Беззнаковое 64-битное целое число (uint64_t) устанавливающее максимальное количество потоков, доступных для Julia. Если $JULIA_NUM_THREADS не положительное или не задано, или если количество потоков ЦП не может быть определено через системные вызовы, то количество потоков устанавливается в 1.

Если $JULIA_NUM_THREADS установлено на auto, тогда количество потоков будет установлено равным количеству потоков ЦП.

JULIA_NUM_THREADS должно быть определено до запуска julia; определение его в startup.jl слишком поздно на стадии запуска.

В Julia 1.5 и выше количество потоков также может быть указано при запуске с помощью параметра командной строки -t/--threads.

Значение auto для $JULIA_NUM_THREADS требует Julia 1.7 или выше.

JULIA_THREAD_SLEEP_THRESHOLD

Если установлено значение, начинающееся (без учёта регистра) с "infinite", тогда вращающиеся потоки никогда не спят. В противном случае $JULIA_THREAD_SLEEP_THRESHOLD интерпретируется как беззнаковое 64-битное целое число (uint64_t). Это число задаёт время в наносекундах, по истечении которого вращающиеся потоки должны перейти в спящее состояние.

JULIA_EXCLUSIVE

Если установлено любое значение, кроме 0, политика потоков Julia соответствует работе на выделенном компьютере: основной поток на процессоре 0, и потоки привязаны к процессорам. В противном случае Julia позволяет операционной системе управлять политикой потоков.

Форматирование REPL

Переменные среды, определяющие, как вывод REPL должен быть отформатирован в терминале. Обычно эти переменные должны содержать последовательности ANSI escape-кодов. Julia предоставляет высокоуровневый интерфейс с подобными функциями; см. раздел The Julia REPL.

JULIA_ERROR_COLOR

Форматирование Base.error_color() (по умолчанию: светло-красный, "\033[91m") ошибок в терминале.

JULIA_WARN_COLOR

Форматирование Base.warn_color() (по умолчанию: жёлтый, "\033[93m" ) предупреждений в терминале.

JULIA_INFO_COLOR

Форматирование Base.info_color() (по умолчанию: голубой, "\033[36m") сообщений информации в терминале.

JULIA_INPUT_COLOR

Форматирование Base.input_color() (по умолчанию: обычный, "\033[0m" ) пользовательского ввода в терминале.

JULIA_ANSWER_COLOR

Форматирование Base.answer_color() (по умолчанию: обычный, "\033[0m") вывода в терминале.

Отладка и профилирование

JULIA_DEBUG

Включить отладочную запись для файла или модуля, см. Logging для получения дополнительной информации.

JULIA_GC_ALLOC_POOL, JULIA_GC_ALLOC_OTHER, JULIA_GC_ALLOC_PRINT

Если установлены, эти переменные среды принимают строки, которые необязательно начинаются с символа 'r', за которым следует интерполяция строки с двоеточием, разделённым списком из трёх знакомых 64-битных целых чисел (int64_t). Эта тройка целых чисел a:b:c представляет арифметическую последовательность a, a + b, a + 2*b, ... c.

  • Если это n-й вызов jl_gc_pool_alloc(), и n принадлежит арифметической последовательности, представленной $JULIA_GC_ALLOC_POOL, то сборка мусора принудительно выполняется.
  • Если это n-й вызов maybe_collect(), и n принадлежит арифметической последовательности, представленной $JULIA_GC_ALLOC_OTHER, то сборка мусора принудительно выполняется.
  • Если это n-й вызов jl_gc_collect(), и n принадлежит арифметической последовательности, представленной $JULIA_GC_ALLOC_PRINT, то выводятся счётчики вызовов jl_gc_pool_alloc() и maybe_collect().

Если значение переменной среды начинается с символа 'r', то интервал между событиями сбора мусора рандомизируется.

Эти переменные среды действуют только если Julia была скомпилирована с отладкой сбора мусора (т.е. если WITH_GC_DEBUG_ENV установлено в 1 в конфигурации сборки).

JULIA_GC_NO_GENERATIONAL

Если установлено любое значение, кроме 0, тогда сборщик мусора Julia никогда не выполняет "быстрые обходы" памяти.

Эта переменная среды действует только в том случае, если Julia была скомпилирована с отладкой сборки мусора (то есть, если WITH_GC_DEBUG_ENV установлено в 1 в конфигурации сборки).

JULIA_GC_WAIT_FOR_DEBUGGER

Если установлено значение, отличное от 0, сборщик мусора Julia будет ожидать подключения отладчика вместо прерывания при возникновении критической ошибки.

Эта переменная среды действует только в том случае, если Julia была скомпилирована с отладкой сборки мусора (то есть, если WITH_GC_DEBUG_ENV установлено в 1 в конфигурации сборки).

ENABLE_JITPROFILING

Если установлено значение, отличное от 0, компилятор создаст и зарегистрирует обработчик событий для профилирования just-in-time (JIT).

Эта переменная среды действует только в том случае, если Julia была скомпилирована с поддержкой JIT-профилирования, используя либо

  • Intel's VTune™ Amplifier (USE_INTEL_JITEVENTS установлено в 1 в конфигурации сборки), или
  • OProfile (USE_OPROFILE_JITEVENTS установлено в 1 в конфигурации сборки).
  • Perf (USE_PERF_JITEVENTS установлено в 1 в конфигурации сборки). Эта интеграция включена по умолчанию.

ENABLE_GDBLISTENER

Если установлено значение, отличное от 0, регистрируется GDB для кода Julia в релизных сборках. В отладочных сборках Julia это всегда включено. Рекомендуется использовать с -g 2.

JULIA_LLVM_ARGS

Аргументы, передаваемые обратному конвейеру LLVM.

© 2009–2022 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.8/manual/environment-variables/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API