Переменные среды
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_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_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 элементы пути разделяются символом |
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 элементы пути разделяются символом |
|
JULIA_HISTORY
Абсолютный путь REPL.find_hist_file()
к файлу истории REPL. Если значение $JULIA_HISTORY
не задано, REPL.find_hist_file()
по умолчанию использует
$(DEPOT_PATH[1])/logs/repl_history.jl
Pkg.jl
JULIA_CI
Заданное значение true
указывает серверу пакетов, что любые операции с пакетами являются частью системы непрерывной интеграции (CI) для целей сбора статистики использования пакетов.
JULIA_NUM_PRECOMPILE_TASKS
Количество параллельных задач для использования при предварительной компиляции пакетов. См. описание Pkg.precompile
.
JULIA_PKG_IGNORE_HASHES
Если задано значение 1
, будут игнорироваться неправильные хэши в артефактах. Этот способ следует использовать осторожно, так как он отключает проверку скачиваний, но позволяет решать проблемы при перемещении файлов в различных типах файловых систем. Дополнительные сведения см. на странице о проблеме Pkg.jl № 2317.
Совместимость: Julia 1.6
Поддерживается в Julia 1.6 и более поздних версиях. |
JULIA_PKG_OFFLINE
Если задано значение true
, будет включен автономный режим: см. описание Pkg.offline
.
Совместимость: Julia 1.5
Для автономного режима 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 1.7 и более поздних версий. |
JULIA_PKG_UNPACK_REGISTRY
Если задано значение true
, реестр будет распакован, а не сохранен в виде сжатого архива Tarball.
Совместимость: Julia 1.7
Это касается только Julia 1.7 и более поздних версий. В более ранних версиях всегда выполняется распаковка реестра. |
JULIA_PKG_USE_CLI_GIT
Если задано значение true
, операции Pkg, использующие протокол git, будут работать с внешним исполняемым файлом git
, а не с библиотекой libgit2 по умолчанию.
Совместимость: Julia 1.7
Использование исполняемого файла |
Сетевой транспорт
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
, а если переменная $SHELL
не задана, используется /bin/sh
.
В 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 1.5
В Julia 1.5 и более поздних версиях количество потоков также может быть задано при запуске с помощью аргумента командной строки |
Совместимость: Julia 1.7
Для установки значения |
JULIA_THREAD_SLEEP_THRESHOLD
Если задана строка, которая начинается с независящей от регистра подстроки "infinite"
, чередующиеся потоки никогда не переходят в спящий режим. В противном случае $JULIA_THREAD_SLEEP_THRESHOLD
интерпретируется как 64-разрядное целое число без знака (uint64_t
) и выделяет (в наносекундах) количество времени, по истечении которого чередующиеся потоки должны перейти в спящий режим.
JULIA_EXCLUSIVE
Если установлено значение, отличное от 0
, политика потоков Julia согласована с выполнением потоков на выделенном компьютере: главный поток находится в подсистеме proc 0, а потоки группируются по схожести. В противном случае Julia передает управление политикой потоков операционной системе.
Форматирование REPL
Переменные среды, определяющие, каким образом вывод REPL должен быть отформатирован в терминале. Как правило, в качестве значений этих переменных должны быть заданы escape-последовательности ANSI. Julia предоставляет высокоуровневый интерфейс с большей частью того же функционала. См. раздел в главе 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_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
.
-
Если
jl_gc_pool_alloc()
вызывается вn
-й раз иn
принадлежит арифметической последовательности, представленной$JULIA_GC_ALLOC_POOL
, принудительно запускается сборка мусора. -
Если
maybe_collect()
вызывается вn
-й раз иn
принадлежит арифметической последовательности, представленной$JULIA_GC_ALLOC_OTHER
, принудительно запускается сборка мусора. -
Если
jl_gc_collect()
вызывается вn
-й раз иn
принадлежит арифметической последовательности, представленной$JULIA_GC_ALLOC_PRINT
, выводятся значения количества вызововjl_gc_pool_alloc()
иmaybe_collect()
.
Если значение переменной среды начинается с символа 'r'
, интервал между событиями сборки мусора является произвольным.
Эти переменные среды работают только в том случае, если код Julia был скомпилирован с отладкой сборки мусора (то есть если |
JULIA_GC_NO_GENERATIONAL
Если задано значение, отличное от 0
, сборщик мусора Julia никогда не выполняет «быструю очистку» памяти.
Эта переменная среды работает только в том случае, если код Julia был скомпилирован с отладкой сборки мусора (то есть если |
JULIA_GC_WAIT_FOR_DEBUGGER
Если задано значение, отличное от 0
, сборщик мусора Julia будет ждать подключения отладчика вместо его прерывания при возникновении критической ошибки.
Эта переменная среды работает только в том случае, если код Julia был скомпилирован с отладкой сборки мусора (то есть если |
ENABLE_JITPROFILING
Если задано значение, отличное от 0
, компилятор создаст и зарегистрирует прослушивателя событий для JIT-профилирования.
Эта переменная среды работает только в том случае, если код Julia был скомпилирован с поддержкой JIT-профилирования с использованием либо
|