Pkg
Pkg 是 Julia 内置的包管理器,它处理安装、更新和删除包等操作。
以下是对 Pkg 的一个非常简短的介绍。有关 Project.toml
文件、Manifest.toml
文件、包版本兼容性([compat]
)、环境、注册表等的更多信息,强烈建议阅读完整的手册,该手册可在以下位置获得:https://pkgdocs.julialang.org。
以下是 Pkg 基本功能的快速概述。它应该帮助新用户熟悉 Pkg 的基本功能,例如添加和删除包以及使用环境。
为了使本基本指南保持重点,本节省略了一些 Pkg 输出。这将有助于保持良好的节奏,而不是陷入细节。如果您需要更多详细信息,请参阅 Pkg 手册的后续部分。
本指南使用 Pkg REPL 执行 Pkg 命令。对于非交互式使用,我们建议使用 Pkg API。Pkg API 在 Pkg 文档的API 参考部分中有完整文档。
Pkg 带有一个 REPL。从 Julia REPL 中按下 ]
即可进入 Pkg REPL。要返回到 Julia REPL,请按 Ctrl+C
或退格键(当 REPL 光标位于输入的开头时)。
进入 Pkg REPL 后,您应该会看到以下提示
(@v1.8) pkg>
要添加包,请使用 add
(@v1.8) pkg> add Example
Resolving package versions...
Installed Example ─ v0.5.3
Updating `~/.julia/environments/v1.8/Project.toml`
[7876af07] + Example v0.5.3
Updating `~/.julia/environments/v1.8/Manifest.toml`
[7876af07] + Example v0.5.3
安装包后,可以将其加载到 Julia 会话中
julia> import Example
julia> Example.hello("friend")
"Hello, friend"
我们还可以一次指定多个包来安装
(@v1.8) pkg> add JSON StaticArrays
status
命令(或较短的 st
命令)可用于查看已安装的包。
(@v1.8) pkg> st
Status `~/.julia/environments/v1.6/Project.toml`
[7876af07] Example v0.5.3
[682c06a0] JSON v0.21.3
[90137ffa] StaticArrays v1.5.9
一些 Pkg REPL 命令有短命令和长命令两种版本,例如 status
和 st
。
要删除包,请使用 rm
(或 remove
)
(@v1.8) pkg> rm JSON StaticArrays
使用 up
(或 update
)更新已安装的包
(@v1.8) pkg> up
如果您一直在遵循本指南,则可能已安装的包处于最新版本,因此 up
不会执行任何操作。下面我们展示了在故意安装旧版本 Example 包并对其进行升级的情况下,状态输出的情况
(@v1.8) pkg> st
Status `~/.julia/environments/v1.8/Project.toml`
⌃ [7876af07] Example v0.5.1
Info Packages marked with ⌃ have new versions available and may be upgradable.
(@v1.8) pkg> up
Updating `~/.julia/environments/v1.8/Project.toml`
[7876af07] ↑ Example v0.5.1 ⇒ v0.5.3
我们可以看到,状态输出告诉我们有更新的版本可用,并且 up
升级了包。
有关管理包的更多信息,请参阅文档的管理包部分。
到目前为止,我们已经介绍了基本的包管理:添加、更新和删除包。
您可能已经注意到 REPL 提示符中的 (@v1.8)
。这让我们知道 v1.8
是**活动环境**。不同的环境可以拥有完全不同的包和版本,这些包和版本是从另一个环境中安装的。活动环境是 Pkg 命令(如 add
、rm
和 update
)将修改的环境。
让我们设置一个新的环境以便我们进行实验。要设置活动环境,请使用 activate
(@v1.8) pkg> activate tutorial
[ Info: activating new environment at `~/tutorial/Project.toml`.
Pkg 让我们知道我们正在创建一个新环境,并且此环境将存储在 ~/tutorial
目录中。环境的路径是相对于 REPL 的当前工作目录创建的。
Pkg 还更新了 REPL 提示符以反映新的活动环境
(tutorial) pkg>
我们可以使用 status
请求有关活动环境的信息
(tutorial) pkg> status
Status `~/tutorial/Project.toml`
(empty environment)
~/tutorial/Project.toml
是活动环境的**项目文件**的位置。项目文件是一个TOML文件,Pkg 在其中存储已明确安装的包。请注意,此新环境为空。让我们添加一些包并观察
(tutorial) pkg> add Example JSON
...
(tutorial) pkg> status
Status `~/tutorial/Project.toml`
[7876af07] Example v0.5.3
[682c06a0] JSON v0.21.3
我们可以看到 tutorial
环境现在包含 Example
和 JSON
。
如果您在多个环境中安装了相同的包(在相同的版本中),则该包只会下载并存储在硬盘上一次。这使得环境非常轻量级,并且创建起来实际上是免费的。只使用包含大量包的默认环境是 Julia 中常见的初学者错误。学习如何有效地使用环境将改善您使用 Julia 包的体验。
有关环境的更多信息,请参阅文档的使用环境部分。
如果您遇到任何问题,可以向 Pkg
请求帮助
(@v1.8) pkg> ?
您应该会看到可用命令的列表以及简短的描述。您可以通过指定命令来请求更详细的帮助
(@v1.8) pkg> ?develop
本指南应该可以帮助您开始使用 Pkg
。Pkg
在强大的包管理方面还有更多功能,阅读完整的手册以了解更多信息!