2. 入门

以下是对 Pkg 基本功能的快速概述。它应该可以帮助新用户熟悉基本的 Pkg 功能,例如添加和删除包以及使用环境。

Note

本节省略了一些 Pkg 输出,以保持基本指南的重点。这将有助于保持良好的节奏,避免陷入细节的困境中。如果您需要更多详细信息,请参阅 Pkg 手册的后续部分。

Note

本指南使用 Pkg REPL 执行 Pkg 命令。对于非交互式使用,我们推荐使用 Pkg API。Pkg API 完整记录在 Pkg 文档的API Reference部分。

基本用法

Pkg 带有一个 REPL。在 Julia REPL 中按 ] 进入 Pkg REPL。要返回 Julia REPL,请按 Ctrl+Cbackspace(当 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
Note

某些 Pkg REPL 命令具有长版本和短版本,例如status and st

要移除包,使用 rm (或 remove):

(@v1.8) pkg> rm JSON StaticArrays

使用 up (或 update) 来更新已安装的包:

(@v1.8) pkg> up

如果您一直遵循本指南,则安装的软件包可能是最新版本,因此 up 不会执行任何操作。下面展示在故意安装旧版本的示例包,然后升级它的情况下的状态输出:

(@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,rmupdate

让我们建立一个新环境,以便进行实验。要设置活动环境,请使用 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 环境现在包含 ExampleJSON

Note

如果您在多个环境中安装了相同的软件包(相同版本),则该软件包只会被下载并存储在硬盘上一次。这使得环境非常轻量级并且可以有效地自由创建。仅使用包含大量包的默认环境是 Julia 初学者的常见错误。学习如何有效地使用环境将改善您使用 Julia 包的体验。

有关环境的更多信息,请参阅文档的 使用“环境” 部分。

寻求帮助

如果您遇到困难,可以寻求 Pkg 帮助:

(@v1.8) pkg> ?

您应该会看到可用命令列表以及简短说明。您可以通过指定命令来寻求更详细的帮助:

(@v1.8) pkg> ?develop

本指南应该可以帮助您开始使用 PkgPkg 在强大的包管理方面提供更多功能,请阅读完整手册以了解更多信息!