环境变量
Julia可以配置许多环境变量,可以按照每个操作系统的常用方式设置,也可以从Julia内部以可移植的方式设置。 假设您要设置环境变量 朱莉亚*编辑到 vim,vim,您可以键入 ENV["JULIA_EDITOR"]="vim" (例如,在REPL中)根据具体情况进行此更改,或将其添加到用户配置文件中 ~/.朱莉娅/配置/启动。jl 在用户的主目录中具有永久的效果。 同一环境变量的当前值可以通过评估来确定 ENV["JULIA_EDITOR"].
Julia使用的环境变量一般从 朱莉娅. 如果 InteractiveUtils.版本信息用关键字调用 详细=真,然后输出将列出与Julia相关的任何定义的环境变量,包括那些包括 朱莉娅 以他们的名义。
|
注意建议避免在运行时更改环境变量,例如在 一个原因是一些julia语言变量,如[ 同样地, 此外,在运行时更改环境变量可能会将数据竞争引入其他良性代码中。 在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_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上,路径元素由 |
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上,路径元素由 |
|
注 |
Pkg。jl
JULIA_NUM_PRECOMPILE_TASKS
预编译包时要使用的并行任务数。 见https://pkgdocs.julialang.org/v1/api/#Pkg.precompile[脧锚脧赂`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使用 |
网络传输
外部应用程序
朱莉亚*谢尔
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
|
注 |
|
兼容性
Julia1.5在Julia1.5及以上版本中,线程数也可以在启动时使用 |
|
兼容性
朱莉娅1.7 |
|
兼容性
朱莉娅1.9 |
JULIA_THREAD_SLEEP_THRESHOLD
如果设置为以不区分大小写的子字符串开头的字符串 "无限",然后纺线永远不会睡觉。 否则的话, $JULIA_THREAD_SLEEP_THRESHOLD 被解释为无符号64位整数(uint64_t),并以纳秒为单位,给出纺纱线睡眠的时间。
JULIA_IMAGE_THREADS
一个无符号的32位整数,用于设置此Julia进程中图像编译使用的线程数。 如果模块是一个小模块,则此变量的值可能会被忽略。 如果未指定,则值的较小者 JULIA_CPU_线程或一半数量的逻辑CPU内核用于其位置。
朱莉亚-独白
如果设置为其他任何东西 0,那么Julia的线程策略与在专用机器上运行是一致的:默认threadpool中的每个线程都被affinitized。 交互式线程保持在操作系统调度程序的控制之下。
否则,Julia让操作系统处理线程策略。
REPL格式
系统和包映像构建
JULIA_CPU_目标
修改目标计算机体系结构以进行(预)编译 系统及 包装图像。 JULIA_CPU_目标 仅影响将机器代码映像生成输出到磁盘缓存。 不像 --cpu-目标,或 -C, 命令行选项,它不会影响机器代码只存储在内存中的Julia会话中的即时(JIT)代码生成。
有效值 JULIA_CPU_目标可以通过执行 朱莉娅-C帮助.
设置 JULIA_CPU_目标对于可能存在不同类型或功能的处理器的异构计算系统非常重要。 这在高性能计算(HPC)集群中很常见,因为组件节点可能使用不同的处理器。
CPU目标字符串是由以下字符串分隔的字符串列表 ; 每个字符串以CPU或体系结构名称开头,后跟一个可选的功能列表,由 ,. A 通用型 或空CPU名称表示目标ISA的基本所需功能集,该功能集至少是c/C的体系结构++ 运行时是用. 每个字符串都由LLVM解释。
支持一些特殊功能:
-
clone_all这将强制目标具有sysimg克隆中的所有功能。 当以否定形式使用时(即-clone_all),这将禁用默认为某些目标启用的完整克隆。 -
基数([0-9]*)这指定(基于0的)基本目标索引。 基目标是当前目标所基于的目标,即未被克隆的函数将使用基目标中的版本。 此选项会导致基本目标完全克隆(就好像clone_all为其指定),如果它不是默认目标(0)。 索引只能小于当前索引。 -
选择大小以最小的性能影响优化尺寸。 Clang/GCC的-操作系统. -
最小尺寸仅针对大小进行优化。 叮当氏-奥兹.
调试和分析
朱莉亚*德布格
为文件或模块启用调试日志记录,请参阅 日志记录了解更多信息。
JULIA_PROFILE_PEEK_HEAP_SNAPSHOT
通过性能分析peek机制启用在执行期间收集堆快照。 见 执行期间触发。
JULIA_TIMING_SUBSYSTEMS
允许您启用或禁用特定Julia运行的区域。 例如,将变量设置为 +GC,-推理 将启用 GC 区域和禁用 推论;推论 区域。 见 动态启用和禁用区域。
JULIA_GC_NO_代际
如果设置为其他任何东西 0,那么Julia垃圾收集器永远不会对内存进行"快速扫描"。
|
请注意,此环境变量仅在Julia使用垃圾回收调试编译时才有效(即,如果 |
JULIA_GC_WAIT_FOR_DEBUGGER
如果设置为其他任何东西 0,然后Julia垃圾回收器将等待调试器附加,而不是在出现严重错误时中止。
|
请注意,这个环境变量只有在Julia是用垃圾回收调试编译的时候才有效果(也就是说,如果 |
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` 在构建配置中)。 默认情况下启用此集成。