Spec-Zone.ru › Julia 1.9

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

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_DEPOT_PATH должна быть определена до запуска Julia; определение её в startup.jl происходит слишком поздно на этапе запуска; в этом случае можно напрямую изменить массив DEPOT_PATH, который заполняется из переменной окружения.

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).

JULIA_VERBOSE_LINKING

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

Pkg.jl

JULIA_CI

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

JULIA_NUM_PRECOMPILE_TASKS

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

JULIA_PKG_DEVDIR

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

JULIA_PKG_IGNORE_HASHES

Если установлено в значение 1, это проигнорирует неправильные хэши в артефактах. Это следует использовать осторожно, так как это отключает проверку загрузок, но может решить проблемы при перемещении файлов через разные типы файловых систем. См. вопрос № 2317 на форуме Pkg.jl для получения дополнительной информации.

Это поддерживается только в 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=""

JULIA_PKG_SERVER_REGISTRY_PREFERENCE

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

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

JULIA_PKG_UNPACK_REGISTRY

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

Это касается только 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 не положительно или не установлено, или если количество потоков CPU нельзя определить с помощью системных вызовов, то количество потоков устанавливается на 1.

Если $JULIA_NUM_THREADS установлено на auto, то количество потоков будет установлено на количество потоков CPU.

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 терминала. 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–2023 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.9/manual/environment-variables/

Spec-Zone.ru

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