趋近智
Julia 包管理器 Pkg 用于查找、添加和管理外部库,这些库将增强 Julia 在项目中的表现。这些包是预先编写好的代码集合,提供专业功能,从数据分析工具到绘图库应有尽有。
Julia 生态系统丰富且持续壮大。为您的需求找到合适的包是重要的一步。以下是一些常见的查找途径:
找到包后,请留意其文档、星标/分支数量(在 GitHub 上,可作为衡量受欢迎程度/维护情况的粗略指标)以及最新活动,以评估其是否合适。
管理包最常见的方式是通过 Julia REPL 内的 Pkg 特殊模式。您可以在 Julia 提示符下键入 ] 进入此模式:
julia> ]
pkg>
请注意,提示符从 julia> 变为 pkg>。您在此模式下键入的所有命令都是 Pkg 命令。要退出 Pkg 模式并返回标准 Julia REPL,只需在空行上按 Backspace 或 Ctrl+C。
确定要使用的包后,您可以将其添加到当前项目环境。相应的命令是 add。例如,要添加常用的 DataFrames 包,您可以键入:
pkg> add DataFrames
发出此命令时,Pkg 会执行以下几项操作:
DataFrames 及其依赖项(其正常运行所需的其他包)的信息。DataFrames 及其所有依赖项的版本,确保它们彼此兼容,并与您项目中已有的其他包兼容。Project.toml 和 Manifest.toml 文件。
Project.toml 列出项目的直接依赖项(例如 DataFrames)。Manifest.toml 记录所有解析到的包(直接和间接依赖项)的精确版本,确保可复现性。您也可以一次添加多个包:
pkg> add DataFrames Plots StatsBase
如果您需要包的特定版本,可以使用 @ 指定:
pkg> add [email protected]
或者,要获取特定主版本或次版本范围内的最新版本:
pkg> add Example@1 # 最新 1.x.y 版本
pkg> add [email protected] # 最新 1.2.x 版本
添加包后,其代码就可供您的 Julia 环境使用,但要在脚本或 REPL 会话中使用其函数和类型,您需要加载它。这通常使用 using 关键字完成:
julia> using DataFrames
julia> df = DataFrame(A = 1:3, B = ['x', 'y', 'z'])
3×2 DataFrame
行 │ A B
│ Int64 Char
─────┼─────────────
1 │ 1 x
2 │ 2 y
3 │ 3 z
在 using DataFrames 之后,DataFrames 中所有导出的函数和类型(例如 DataFrame 构造函数本身)都可直接使用。
或者,您可以使用 import。主要区别在于,import PackageName 要求您使用包名限定所有名称(例如 DataFrames.DataFrame)。import PackageName: name1, name2 只将特定名称引入作用域。对于大多数交互式使用和一般脚本编写,using 更常见。
julia> import DataFrames
# 您必须限定名称:
julia> df = DataFrames.DataFrame(ID = [1, 2], Value = [10.0, 20.5])
2×2 DataFrame
行 │ ID 值
│ Int64 Float64
─────┼────────────────
1 │ 1 10.0
2 │ 2 20.5
要查看当前环境中已安装的包及其版本,请在 Pkg 模式下使用 status 命令(或其缩写 st):
pkg> status
or
pkg> st
这会输出您 Project.toml 文件中包含的包列表,以及它们的版本和可能存在的简短唯一标识符 (UUID)。
pkg> st
Status `~/my_julia_project/Project.toml`
[336ed68f] CSV v0.10.11
[a93c6f00] DataFrames v1.6.1
[91a5bcdd] Plots v1.39.0
输出显示直接添加到此项目环境中的包及其安装版本。
包开发者会定期发布新版本,包含错误修复、性能提升和新功能。要将环境中所有包更新到最新的兼容版本,请使用 update 命令(或 up):
pkg> update
这会检查注册表是否有所有依赖项的新版本,同时遵守兼容性约束。如果您只想更新特定包,可以指定其名称:
pkg> update DataFrames
定期更新包通常是良好的习惯。
如果您的项目不再需要某个包,可以使用 rm 命令将其移除:
pkg> rm DataFrames
这会从您的 Project.toml 中移除 DataFrames,如果其他包不再需要其依赖项,也会从 Manifest.toml 和您的系统中移除它们(不过通常包只是取消跟踪,并不会立即从磁盘删除,以便将来更快地重新添加)。
在使用 Pkg 时,您会注意到 Project.toml 和 Manifest.toml 的提及。这些文件是 Julia 环境系统的核心。每个项目都可以拥有自己独立的包版本集合。这对于确保可复现性和避免冲突非常有帮助,例如一个项目需要旧版本包而另一个项目需要新版本包的情况。
启动 Julia 时,它通常处于默认的全局环境。然而,对于正式的工作,您会希望创建项目专属环境。Pkg.activate(".") 命令(在 Julia REPL 中运行,而非 Pkg 模式)会指示 Julia 在当前目录中使用或创建 Project.toml 和 Manifest.toml 文件。之后,任何 add、rm 或 update 命令都将应用于该项目的环境。我们将在下一节更详细地介绍项目的设置。
有效地查找、添加和管理包是任何 Julia 程序员的基本技能。它让您能够使用社区创建的工具库,显著加快您的开发速度,并扩大您使用 Julia 完成工作的能力。
这部分内容有帮助吗?
using和import。© 2026 ApX Machine Learning用心打造