AnyMath 文档

环境变量

Julia可以配置许多环境变量,可以按照每个操作系统的常用方式设置,也可以从Julia内部以可移植的方式设置。 假设您要设置环境变量 朱莉亚*编辑vim,vim,您可以键入 ENV["JULIA_EDITOR"]="vim" (例如,在REPL中)根据具体情况进行此更改,或将其添加到用户配置文件中 ~/.朱莉娅/配置/启动。jl 在用户的主目录中具有永久的效果。 同一环境变量的当前值可以通过评估来确定 ENV["JULIA_EDITOR"].

Julia使用的环境变量一般从 朱莉娅. 如果 InteractiveUtils.版本信息用关键字调用 详细=真,然后输出将列出与Julia相关的任何定义的环境变量,包括那些包括 朱莉娅 以他们的名义。

注意建议避免在运行时更改环境变量,例如在 ~/.朱莉娅/配置/启动。jl.

一个原因是一些julia语言变量,如[JULIA_NUM_线程](/manual/environment-variables#JULIA_NUM_THREADS)和[朱利亚*项目](/manual/environment-variables#JULIA_PROJECT),需要在Julia开始之前设置。

同样地, __init__() sysimage中用户模块的功能(通过PackageCompiler)之前运行 启动。jl,所以在a中设置环境变量 启动。jl 用户代码可能为时已晚。

此外,在运行时更改环境变量可能会将数据竞争引入其他良性代码中。

在Bash中,环境变量可以通过运行手动设置,例如, 导出JULIA_NUM_THREADS=4 在启动Julia之前,或者通过将相同的命令添加到 ~/.巴什克~/.bash_profile 以在每次启动Bash时设置变量。

文件位置

朱莉亚*宾迪尔

包含Julia可执行文件的目录的绝对路径,它设置全局变量 系统。宾迪尔. 如果 $JULIA_BINDIR 未设置,则Julia确定值 系统。宾迪尔 在运行时。

可执行文件本身是

$JULIA_BINDIR/julia
$JULIA_BINDIR/julia-debug

默认情况下。

全局变量 基地。DATAROOTDIR 确定从 系统。宾迪尔 到与Julia关联的数据目录。 然后路径

$JULIA_BINDIR/$DATAROOTDIR/julia/base

确定Julia最初搜索源文件的目录(通过 基地。find_source_file()).

同样,全局变量 基地。SYSCONFDIR,SYSCONFDIR 确定配置文件目录的相对路径。 然后朱莉娅搜索一个 启动。jl 档案于

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

默认情况下(通过 基地。负载_julia_startup()).

例如,带有Julia可执行文件的Linux安装位于 /宾/朱莉娅,一 DATAROOTDIR../分享,而一 SYSCONFDIR,SYSCONFDIR../等 会有 朱莉亚*宾迪尔设置为 /bin,源文件搜索路径

/share/julia/base

和全局配置搜索路径

/etc/julia/startup.jl

朱利亚*项目

指示哪个项目应该是初始活动项目的目录路径。 设置此环境变量与指定 --项目 启动选项,但 --项目 具有更高的优先级。 如果变量设置为 @. (注意尾随点)然后Julia试图找到一个包含 工程。汤姆尔朱利亚项目。汤姆尔 当前目录及其父目录中的文件。 另见关于 代码加载

朱利亚*项目必须在开始julia之前定义;在 启动。jl 在启动过程中为时已晚。

JULIA_LOAD_PATH

JULIA_LOAD_PATH环境变量用于填充全局变量 LOAD_PATH变量,它决定哪些包可以通过 进口使用 (见 代码加载)。

不像外壳 路径 变量,空条目 JULIA_LOAD_PATH展开为默认值 LOAD_PATH, ["@","@v#。#","@stdlib"] 填充时 LOAD_PATH. 这允许轻松追加,预置等。 shell脚本中的加载路径值,无论是否 JULIA_LOAD_PATH已经设置与否。 例如,在目录前面加上 /foo/酒吧LOAD_PATH 只要做

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

如果 JULIA_LOAD_PATH环境变量已设置,其旧值将以 /foo/酒吧. 另一方面,如果 JULIA_LOAD_PATH未设置,则将其设置为 /foo/酒吧: 这将扩展到一个 LOAD_PATH 的价值 ["/foo/bar","@","@v#。#","@stdlib"]. 如果 JULIA_LOAD_PATH被设置为空字符串,它扩展为空 LOAD_PATH 阵列。 换句话说,空字符串被解释为零元素数组,而不是空字符串的一元素数组。 选择此行为是为了可以通过环境变量设置空加载路径。 如果您想要默认的加载路径,请取消设置环境变量,或者如果它必须有一个值,请将其设置为字符串 :.

注意在Windows上,路径元素由 ; 符,就像Windows上大多数路径列表的情况一样。 更换/更换 :; 在上述段落中。

JULIA_DEPOT_PATH

JULIA_DEPOT_PATH环境变量用于填充全局变量 DEPOT_PATH变量,它控制包管理器以及Julia的代码加载机制查找包注册表、已安装的包、命名环境、回购克隆、缓存的编译包映像、配置文件以及REPL历史文件的默认位置。

不像外壳 路径 变量,但类似于 JULIA_LOAD_PATH,空条目在 JULIA_DEPOT_PATH有特殊行为:

*最后,它被扩展为默认值 DEPOT_PATH,_excluding_用户库。 *在开始时,它被扩展到默认值 DEPOT_PATH,_including_用户库。

这允许轻松复盖用户库,同时仍然保留对与Julia捆绑在一起的资源的访问,如缓存文件,工件等。 例如,要将用户仓库切换到 /foo/酒吧 使用尾随 :

export JULIA_DEPOT_PATH="/foo/bar:"

所有软件包操作(如克隆注册表或安装软件包)现在都将写入 /foo/酒吧,但由于空条目扩展到默认的system depot,因此任何捆绑的资源仍然可用。 如果你真的只想在 /foo/酒吧,并且不加载任何捆绑资源,只需将环境变量设置为 /foo/酒吧 没有尾冒号。

要在完整默认列表(包括默认用户库)的末尾追加库,请使用前导 :

export JULIA_DEPOT_PATH=":/foo/bar"

上述规则有两个例外。 首先,如果 JULIA_DEPOT_PATH被设置为空字符串,它扩展为空 DEPOT_PATH 阵列。 换句话说,空字符串被解释为零元素数组,而不是空字符串的一元素数组。 选择此行为是为了可以通过环境变量设置空仓库路径。

其次,如果没有在指定用户仓库 JULIA_DEPOT_PATH,则将空条目展开为默认depot_including_用户depot。 这使得可以使用默认仓库,就像环境变量未设置一样,通过将其设置为字符串 :.

注意在Windows上,路径元素由 ; 符,就像Windows上大多数路径列表的情况一样。 更换/更换 :; 在上述段落中。

JULIA_DEPOT_PATH必须在开始julia之前定义;在 启动。jl 在启动过程中为时已晚;在这一点上,你可以直接修改 DEPOT_PATH 数组,从环境变量填充。

朱莉亚*历史

绝对路径 REPL。find_hist_file() REPL的历史文件。 如果 $JULIA_历史 未设置,则 REPL.find_hist_file() 默认值为

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

JULIA_MAX_NUM_PRECOMPILE_FILES

设置要存储在预编译缓存中的单个包的不同实例的最大数量(默认值=10)。

朱莉亚_VERBOSE_LINKING

如果设置为true,则在预编译期间将显示链接器命令。

Pkg。jl

朱莉亚*奇

如果设置为 真的,这向包服务器表明,为了收集包使用情况统计信息,任何包操作都是持续集成(CI)系统的一部分。

JULIA_NUM_PRECOMPILE_TASKS

预编译包时要使用的并行任务数。 见https://pkgdocs.julialang.org/v1/api/#Pkg.precompile[脧锚脧赂`Pkg。预编译`].

JULIA_PKG_DEVDIR

使用的默认目录https://pkgdocs.julialang.org/v1/api/#Pkg.develop[脧锚脧赂`Pkg。发展;发展`]用于下载软件包。

JULIA_PKG_IGNORE_HASHES

如果设置为 1,这将忽略工件中的不正确哈希。 这应该小心使用,因为它禁用下载的验证,但可以解决跨不同类型的文件系统移动文件时的问题。 见https://github.com/JuliaLang/Pkg.jl/issues/2317[Pkg.jl问题#2317]了解更多详情。

兼容性

Julia1.6这仅在Julia1.6及更高版本中受支持。

朱莉亚_PKG_OFFLINE

如果设置为 真的,这将启用离线模式:请参阅https://pkgdocs.julialang.org/v1/api/#Pkg.offline[脧锚脧赂`Pkg。离线状态`].

兼容性

Julia1.5Pkg的离线模式需要Julia1.5或更高版本。

JULIA_PKG_PRECOMPILE_AUTO

如果设置为 0,这将通过更改清单的包操作禁用自动预编译。 见https://pkgdocs.julialang.org/v1/api/#Pkg.precompile[脧锚脧赂`Pkg。预编译`].

JULIA_PKG_服务器

指定要使用的包注册表的URL。 默认情况下, Pkg,Pkg 用途 https://pkg.julialang.org 去取茱莉亚的包裹。 此外,您可以禁用PkgServer协议的使用,而是直接从其主机(GitHub,GitLab等)访问软件包。)通过设置: 导出JULIA_PKG_SERVER=""

JULIA_PKG_SERVER_REGISTRY_PREFERENCE

指定首选注册表功能。 当前支持的值为 保守派 (默认值),它只会发布已由存储服务器处理的资源(从而具有更高的可从PkgServers获得的可能性),而 渴望 将发布资源不一定已由存储服务器处理的注册表。 不允许从任意服务器下载的限制性防火墙后面的用户不应使用 渴望 味道。

兼容性

Julia1.7这只影响Julia1.7及以上。

JULIA_PKG_UNPACK_区域化学

如果设置为 真的,这将解压缩注册表,而不是将其存储为压缩tarball。

兼容性

Julia1.7这只影响Julia1.7及以上。 早期版本将始终解压缩注册表。

JULIA_PKG_USE_CLI_GIT

如果设置为 真的,使用git协议的Pkg操作将使用外部 git的 可执行文件,而不是默认的libgit2库。

兼容性

Julia1.7使用 git的 可执行文件仅在Julia1.7及更高版本上受支持。

朱莉亚_PKGRESOLVE_ACCURACY

封装解析器的精度。 这应该是一个正整数,默认是 1.

JULIA_PKG_PRESERVE_TIERED_安装

将默认包安装策略更改为 Pkg。PRESERVE_TIERED_安装 让包管理器尝试安装包的版本,同时保持尽可能多的已安装包的版本。

兼容性

Julia1.9这只影响Julia1.9及以上。

JULIA_PKG_GC_AUTO

如果设置为 错误,包和工件的自动垃圾回收将被禁用;请参阅https://pkgdocs.julialang.org/v1/api/#Pkg.gc[脧锚脧赂`Pkg。gc`]了解更多详情。

兼容性

Julia1.12此环境变量仅在Julia1.12及更高版本上受支持。

网络传输

JULIA_NO_VERIFY_HOSTS

JULIA_SSL_NO_VERIFY_HOSTS

JULIA_SSH_NO_VERIFY_HOSTS

JULIA_ALWAYS_VERIFY_HOSTS

指定应该或不应该为特定传输层验证其身份的主机。 见https://github.com/JuliaLang/NetworkOptions.jl#verify_host[脧锚脧赂`网络选项。验证_主机`]

JULIA_SSL_CA_ROOTS_PATH

指定包含证书颁发机构根的文件或目录。 见https://github.com/JuliaLang/NetworkOptions.jl#ca_roots[脧锚脧赂`NetworkOptions.ca_roots`]

外部应用程序

朱莉亚*谢尔

Julia应该执行外部命令的shell的绝对路径(通过 基地。回复_cmd()). 环境变量的默认值 $SHELL,并回落到 /bin/sh 如果 $SHELL 未设置。

注意在Windows上,忽略此环境变量,直接执行外部命令。

朱莉亚*编辑

编辑回来了 InteractiveUtils.编辑() 并用于,例如, InteractiveUtils.编辑,引用首选编辑器的命令,例如 vim,vim.

$JULIA_EDITOR 优先于 $些,进而优先于 编辑. 如果没有设置这些环境变量,则编辑器将被视为 打开 在Windows和OS X上,或 /等/替代/编辑 如果存在,或 emacs的 否则。

要在Windows上使用Visual Studio Code,请设置 $JULIA_EDITOR密码。cmd公司.

并行化

JULIA_CPU_线程

复盖全局变量 基地。系统。CPU_线程,可用的逻辑CPU核数。

JULIA_WORKER_TIMEOUT

A 漂浮64设置的值 分布。worker_timeout() (默认: 60.0). 这个函数给出了一个工作进程在死之前等待一个主进程建立连接的秒数。

JULIA_NUM_线程

一个无符号的64位整数(uint64_t)或设置Julia可用的最大线程数的字符串。 如果 $JULIA_NUM_THREADS 未设置或为非正整数,或者如果无法通过系统调用确定CPU线程数,则将线程数设置为 1.

如果 $JULIA_NUM_THREADS 被设置为 汽车,则线程数将被设置为CPU线程数。 它也可以设置为逗号分隔的字符串,以指定 :默认值:互动 threadpools,分别:

# 5 threads in the :default pool and 2 in the :interactive pool
export JULIA_NUM_THREADS=5,2

# `auto` threads in the :default pool and 1 in the :interactive pool
export JULIA_NUM_THREADS=auto,1

JULIA_NUM_线程 必须在开始Julia之前定义;在 启动。jl 在启动过程中为时已晚。

兼容性

Julia1.5在Julia1.5及以上版本中,线程数也可以在启动时使用 -t/--线程 命令行参数。

兼容性

朱莉娅1.7 汽车 价值 $JULIA_NUM_THREADS 要求Julia1.7或以上。

兼容性

朱莉娅1.9 x,y threadpools的格式要求Julia1.9或更高版本。

JULIA_THREAD_SLEEP_THRESHOLD

如果设置为以不区分大小写的子字符串开头的字符串 "无限",然后纺线永远不会睡觉。 否则的话, $JULIA_THREAD_SLEEP_THRESHOLD 被解释为无符号64位整数(uint64_t),并以纳秒为单位,给出纺纱线睡眠的时间。

JULIA_NUM_GC_THREADS

设置垃圾回收使用的线程数。 如果未指定则设置为工作线程数。

兼容性

Julia1.10环境变量是在1.10中添加的

JULIA_IMAGE_THREADS

一个无符号的32位整数,用于设置此Julia进程中图像编译使用的线程数。 如果模块是一个小模块,则此变量的值可能会被忽略。 如果未指定,则值的较小者 JULIA_CPU_线程或一半数量的逻辑CPU内核用于其位置。

朱莉亚*影像*时间

一个布尔值,用于确定在图像编译期间是否打印了详细的时序信息。 默认值为0。

朱莉亚-独白

如果设置为其他任何东西 0,那么Julia的线程策略与在专用机器上运行是一致的:默认threadpool中的每个线程都被affinitized。 交互式线程保持在操作系统调度程序的控制之下。

否则,Julia让操作系统处理线程策略。

垃圾收集

JULIA_HEAP_SIZE_HINT

环境变量相当于 --堆大小提示=<大小>[<单位>] 命令行选项。

如果内存使用率高于给定值,则强制垃圾回收。 该值可以指定为字节数,可选地以:

- B  (bytes)
- K  (kibibytes)
- M  (mebibytes)
- G  (gibibytes)
- T  (tebibytes)
- %  (percentage of physical memory)

例如, JULIA_HEAP_SIZE_HINT=1G 将向垃圾收集器提供1GB堆大小提示。

REPL格式

确定如何在终端格式化REPL输出的环境变量。 该 朱莉亚*颜色 变量应设置为https://en.wikipedia.org/wiki/ANSI_escape_code[ANSI终端转义序列]。 Julia提供了一个具有许多相同功能的高级接口;请参阅 朱莉娅REPL

JULIA_ERROR_COLOR

格式 基地。error_color() (默认:浅红色, "\033[91m")终端应该有错误。

朱莉亚*沃恩*颜色

格式 基地。warn_color() (默认:黄色, "\033[93m")终端应该有警告。

朱莉亚_INFO_COLOR

格式 Base.info_color() (默认:青色, "\033[36m")该信息应该在终端。

JULIA_INPUT_颜色

格式 基地。输入颜色() (默认:正常, "\033[0m")该输入应该在终端。

朱莉亚_ANSWER_COLOR

格式 基地。答案颜色() (默认:正常, "\033[0m")该输出应该在终端。

无颜色

当此变量存在并且不是空字符串(无论其值如何)时,将在REPL上禁用彩色文本。 可以用标志复盖 --颜色=是 或者使用环境变量 力_颜色. 这个环境变量是https://no-color.org/[命令行应用程序通常识别]。

力_颜色

当这个变量存在并且不是空字符串(不管它的值如何)时,将在REPL上启用彩色文本。 可以用标志复盖 --颜色=没有. 这个环境变量是https://force-color.org/[命令行应用程序通常识别]。

系统和包映像构建

JULIA_CPU_目标

修改目标计算机体系结构以进行(预)编译 系统包装图像JULIA_CPU_目标 仅影响将机器代码映像生成输出到磁盘缓存。 不像 --cpu-目标,或 -C, 命令行选项,它不会影响机器代码只存储在内存中的Julia会话中的即时(JIT)代码生成。

有效值 JULIA_CPU_目标可以通过执行 朱莉娅-C帮助.

设置 JULIA_CPU_目标对于可能存在不同类型或功能的处理器的异构计算系统非常重要。 这在高性能计算(HPC)集群中很常见,因为组件节点可能使用不同的处理器。

CPU目标字符串是由以下字符串分隔的字符串列表 ; 每个字符串以CPU或体系结构名称开头,后跟一个可选的功能列表,由 ,. A 通用型 或空CPU名称表示目标ISA的基本所需功能集,该功能集至少是c/C的体系结构++ 运行时是用. 每个字符串都由LLVM解释。

支持一些特殊功能:

  1. clone_all 这将强制目标具有sysimg克隆中的所有功能。 当以否定形式使用时(即 -clone_all),这将禁用默认为某些目标启用的完整克隆。

  2. 基数([0-9]*) 这指定(基于0的)基本目标索引。 基目标是当前目标所基于的目标,即未被克隆的函数将使用基目标中的版本。 此选项会导致基本目标完全克隆(就好像 clone_all 为其指定),如果它不是默认目标(0)。 索引只能小于当前索引。

  3. 选择大小 以最小的性能影响优化尺寸。 Clang/GCC的 -操作系统.

  4. 最小尺寸 仅针对大小进行优化。 叮当氏 -奥兹.

调试和分析

朱莉亚*德布格

为文件或模块启用调试日志记录,请参阅 日志记录了解更多信息。

JULIA_PROFILE_PEEK_HEAP_SNAPSHOT

通过性能分析peek机制启用在执行期间收集堆快照。 见 执行期间触发

JULIA_TIMING_SUBSYSTEMS

允许您启用或禁用特定Julia运行的区域。 例如,将变量设置为 +GC,-推理 将启用 GC 区域和禁用 推论;推论 区域。 见 动态启用和禁用区域

JULIA_GC_NO_代际

如果设置为其他任何东西 0,那么Julia垃圾收集器永远不会对内存进行"快速扫描"。

请注意,此环境变量仅在Julia使用垃圾回收调试编译时才有效(即,如果 WITH_GC_DEBUG_ENV 被设置为 1 在构建配置中)。

JULIA_GC_WAIT_FOR_DEBUGGER

如果设置为其他任何东西 0,然后Julia垃圾回收器将等待调试器附加,而不是在出现严重错误时中止。

请注意,这个环境变量只有在Julia是用垃圾回收调试编译的时候才有效果(也就是说,如果 WITH_GC_DEBUG_ENV 被设置为 1 在构建配置中)。

ENABLE_JITPROFILING

如果设置为其他任何东西 0,然后编译器将创建并注册一个事件侦听器,用于实时(JIT)分析。

请注意,此环境变量仅在使用JIT分析支持编译Julia时才有效,使用以下任一项

-英特尔的https://software.intel.com/en-us/vtune[VTune™放大器](`使用_INTEL_JITEVENTS` 设置为 `1` 在构建配置中),或
-https://oprofile.sourceforge.io/news/[OProfile](`USE_OPROFILE_JITEVENTS` 设置为 `1` 在构建配置中)。

-https://perf.wiki.kernel.org[Perf](`使用_PERF_JITEVENTS` 设置为 `1` 在构建配置中)。 默认情况下启用此集成。

ENABLE_GDBLISTENER

如果设置为其他任何东西 0 在发布版本中启用Julia代码的GDB注册。 在Julia的调试版本中,这始终是启用的。 建议配合使用 -g2.

JULIA_LLVM_ARGS

要传递给LLVM后端的参数。

朱莉亚*法尔巴克*雷普尔

强制回退repl而不是REPL。jl.