本文包含附属链接。有关更多信息,请参阅我的关联披露。
想要快速启动并运行 Julia 吗?
本指南将引导您逐步设置专业的 Julia 开发环境。您将学习如何:
- 使用
juliaup
安装 Julia。 - 设置 Julia VS 代码扩展。
- 使用通用开发工具创建共享开发环境。
- 编写一个
startup.jl
文件以在每次 Julia 启动时自动加载共享环境。
打开你的终端,让我们开始吧。
使用juliaup
安装 Julia
您可以从 julialang.org 下载 Julia 二进制文件,但这很无聊。
所有酷孩子都使用juliaup
,这是一个受rustup
项目启发的 Julia“版本多路复用器”。使用juliaup
,您可以安装多个 Julia 版本并从命令行在它们之间切换。当新的 Julia 版本可用时,它甚至会在您的终端中通知您。
要安装juliaup
,请执行以下与您的操作系统相对应的命令:
macOS/Linux:
curl -fsSL https://install.julialang.org | sh
视窗:
winget install julia -s msstore
运行juliaup status
查看juliaup
安装的每个 Julia 版本。已安装最新版本:
$ juliaup status Default Channel Version Update ---------------------------------------------------------- * release 1.8.5+0.aarch64.apple.darwin14
您可以从 GitHub 上的项目自述文件了解有关juliaup
的更多信息。
设置 Julia VS 代码扩展
您可以将 Julia 与您喜欢的代码编辑器一起使用。但如果你想要 IDE 体验,最好的选择是VS Code 。 juliaup
背后的同一批人维护着一个Julia VS Code 扩展,其中包含几个有用的特性。
下载并安装 VS Code(如果尚未安装)。然后,打开 VS Code 并单击活动栏中的扩展选项卡:
在搜索栏中输入julia 。第一个结果应该是官方的 Julia 扩展,由一个名为 julialang 的经过验证的帐户发布:
单击“安装”以安装扩展:
除非您使用juliaup
更改了 Julia 安装的位置——本指南未涵盖的内容——该扩展将自动找到 Julia。
要对此进行测试,请在计算机上的某个位置创建一个hello_world.jl
文件,使用 VS Code 打开它,添加行print("Hello, world")
并保存文件,然后按右上角的播放按钮窗户:
VS Code 执行脚本并在编辑器窗口底部的新 Julia REPL 窗口中显示输出。
julia.executablePath
设置将其指向正确的安装位置。有关详细信息,请参阅Julia VS Code 扩展文档。Julia VS Code 扩展提供了语言支持、Intellisense、linting 和格式化工具,以及您投入第一个 Julia 项目所需的一切。
高级:创建共享开发环境
Julia 生态系统有一些出色的开发人员生产力工具,包括:
- Revise.jl用于在不重新启动 Julia 的情况下使用来自 REPL 的代码更改。
- OhMyREPL.jl用于 REPL 语法高亮和括号匹配。
- 用于性能跟踪和基准分析的BenchmarkTools.jl 。
这三个包将 Julia REPL 变成了一个简单但功能强大的开发环境。如果您无论从事哪个项目都可以访问这些工具,那就太好了。感谢 Julia 对堆叠环境的支持,您可以做到。
首先在某处为开发工具环境创建一个新目录。我将我的保存在名为~/.julia-environments/tools/
的文件夹中。然后cd
进入这个目录并运行 Julia:
$ mkdir -p ~/.julia-environments/tools $ cd ~/.julia-environments/tools $ julia
REPL启动后,按]
进入包管理器模式:
julia> ] (@v1.8) pkg>
pkg>
左侧的(@v1.8)
表示 Julia 1.8 版的基础(或全局)环境当前处于活动状态。您可能会看到不同的版本号。
我不这样做有两个原因:
1. 多年的 Python 编程使我习惯于避免全局环境。
2. Julia 的全局环境位于~/.julia/environments/
中,由 Julia 自己管理。我希望我的工具环境位于某个我知道它不会突然改变的地方(并且我可以进行版本控制)。
通过执行activate .
在 REPL 中:
(@v1.8) pkg> activate . Activating new project at `~/.julia-enironments/tools` (tools) pkg>
使用add
命令安装Revise
、 OhMyREPL
和BenchmarkTools
包:
(tools) pkg> add Revise OhMyREPL BenchmarkTools Updating registry at `~/.julia/registries/General.toml` Resolving package versions... Updating `~/.julia-enironments/tools/Project.toml` [6e4b80f9] + BenchmarkTools v1.3.2 [5fb14364] + OhMyREPL v0.5.13 [295af30f] + Revise v3.5.0 Updating `~/.julia-enironments/tools/Manifest.toml` [6e4b80f9] + BenchmarkTools v1.3.2 [da1fd8a2] + CodeTracking v1.2.0 [a8cc5b0e] + Crayons v4.1.1 ... (output truncated) (tools) pkg>
在~/.julia-environment/tools/
目录中创建了两个文件:
-
Project.toml
包含您使用add
命令安装的三个包的名称和哈希值。 -
Manifest.toml
描述了Project.toml
中包的完全解析的依赖关系图。
~/.julia-environments/tools/
目录与Project.toml
和Manifest.toml
文件一起正式定义了 Julia环境。但是每次要使用它时都必须显式激活环境。
让我们改变它。
进阶:写一个startup.jl
文件
按 Ctrl + D 关闭 Julia REPL。然后,进入~/.julia/
cd
。 ~/.julia/
是在使用juliaup
安装 Julia 时自动创建的。它包含全局环境、包注册表、日志和配置文件等内容。
创建一个包含以下内容的文件~/.julia/config/startup.jl
(感谢 Tim Holy 在Revise.jl 文档中包含用于在startup.jl
中加载包的模板):
# ~/.julia/config/startup.jl # Stack the tools environment on top of the currently active environment. # See: https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_LOAD_PATH # Remove the line below if you installed tools in your global environment push!(LOAD_PATH, Base.Filesystem.homedir() * "/.julia-environments/tools/") # Import the tools, or display a warning if something goes wrong try @eval using OhMyREPL catch e @warn "Error initializing OhMyREPL" exception=(e, catch_backtrace()) end try @eval using Revise catch e @warn "Error initializing Revise" exception=(e, catch_backtrace()) end try @eval using BenchmarkTools catch e @warn "Error initializing BenchmarkTools" exception=(e, catch_backtrace()) end
~/.julia/config/
目录。现在,每次启动 Julia——甚至是从 VS Code——时, Revise
、 OhMyREPL
和BenchmarkTools
都会自动加载到活动环境之上,与其他依赖项隔离,而无需在每个项目中安装和导入它们。
如果你问我的话,那真是太好了!
其他startup.jl
包
这里有一些其他方便的包,可以考虑在您的工具环境中安装并导入到您的startup.jl
文件中:
- JuliaFormatter.jl用于自动格式化您的代码。
- PkgTemplates.jl用于快速构建新的 Julia 包。
- Term.jl用于改进日志记录、错误和 repr 样式。
- AbbreviatedStackTraces.jl用于改进堆栈跟踪。
并且不要错过 Julia Discourse 上这个长期运行的线程以及startup.jl
的许多其他用例。
深入挖掘
如果您有兴趣开始使用 Julia 进行数据分析,我极力推荐 Bogumił Kamiński 的书Julia For Data Analysis 。对于我见过的有经验的程序员来说,它也是对 Julia 最好的介绍之一。
从Manning获得即时访问权限。 Amazon提供 Kindle 版本。
想要更多这样的东西吗?
每周六一封电子邮件,附上一条可行的提示。
总是少于 5 分钟的时间。
现在订阅