使用 Julia 软件包
使用软件包的原则
-
查找您感兴趣的软件包的准确名称。Julia 生态系统中包含一万多个在通用注册表中注册的软件包,因此很难找到正确的软件包。为了优化搜索,我们建议您参考以下资料:
-
编程 - Engee*部分包含俄语版Julia的完整文档。
-
JuliaHub - 用于搜索所有已注册的开源软件包文档的服务,可按标签和关键字排序。
-
Julia Packages - 用于搜索、探索和浏览 Julia 软件包的在线资源,可按类别、受欢迎程度和日期设置过滤器。
-
Julia.jl 是 Julia 编程语言的主要软件包资源库。该资源库托管在 GitHub 平台上,包含社区开发的许多有用的软件包和工具,可用于使用 Julia 语言。
-
-
请根据您的任务选择使用软件包的工具—命令行或脚本编辑器。
-
通过添加 Pkg 软件包管理器来初始化 Julia 中的软件包处理。添加管理器的语法因所选工具而异。
-
使用
add
命令在环境中添加软件包,以便在项目中使用它们。添加软件包的语法因所选工具而异。 -
将软件包加载到命名空间,并使用
using
和import
操作符访问其特定元素。您也可以添加自己的软件包。 -
如有必要,可使用
status
查看软件包的状态,检查哪些软件包已载入 Engee RAM,并使用remove
或rm
删除不需要的软件包(语法取决于所选工具)。
有关软件包工作的详细信息如下。
命令行下的 Julia 软件包
要在 Engee 命令行上安装新软件包,请左键单击代码输入区,然后单击结尾方括号]。这将切换命令行,使其与软件包管理器协同工作。命令行将从 engee>
变为 pkg>
:
pkg>
在软件包管理器模式下,使用 add
命令添加软件包:
add Example
例如,你可以同时添加多个软件包,方法是列出用逗号分隔的软件包名称:
add Example, Plots, Pluto
删除 "命令或其缩写版本 "rm "用于删除软件包:
remove Pluto
软件包删除输出_
Updating `/user/.project/Project.toml`
[c3e4b0f8] - Pluto v0.19.38
Updating `/user/.project/Manifest.toml`
[5218b696] - Configurations v0.17.6
[e2d170a0] - DataValueInterfaces v1.0.0
[21656369] - ExpressionExplorer v1.0.0
[55351af7] - ExproniconLite v0.10.5
[fb4132e2] - FuzzyCompletions v0.5.3
[ac1192a8] - HypertextLiteral v0.9.5
[82899510] - IteratorInterfaceExtensions v1.0.0
[0e77f7df] - LazilyInitializedFields v1.2.2
[6c6e2e6c] - MIMEs v0.1.4
[36869731] - Malt v1.1.1
[99f44e22] - MsgPack v1.2.0
[c3e4b0f8] - Pluto v0.19.38
[91cefc8d] - PrecompileSignatures v3.0.3
[aea7be01] - PrecompileTools v1.2.0
[2792f1a3] - RegistryInstances v0.1.0
[3783bdb8] - TableTraits v1.0.1
[bd369af6] - Tables v1.10.0
[410a4b4d] - Tricks v0.1.6
如有必要,您可以一次删除多个软件包,方法是列出用逗号分隔的软件包名称:
remove Pluto, Plots, Example
试图删除不存在的软件包将导致错误:
错误输出_
The following package names could not be resolved:
* Имя пакета (not found in project or manifest)
要退出 pkg> 软件包管理器模式,请左键单击代码输入区,然后单击Backspace 。这将返回 engee> 命令行的主视图。
|
脚本编辑器中的 Julia 软件包
要在 Engee 交互式脚本中安装新软件包,请在代码部分使用 import Pkg
命令导入 Pkg,然后运行 Pkg.add("软件包名称")
。例如,添加 Example
软件包的代码部分如下所示:
import Pkg
Pkg.add("Example")
单击该部分的 Start 按钮 后,将导入 Pkg 软件包管理器并安装
Example
软件包。软件包安装进度信息将自动显示:
Resolving package versions...
Installed Example ─ v0.5.3
Updating `/user/start/Project.toml`
[7876af07] + Example v0.5.3
Updating `/user/start/Manifest.toml`
[7876af07] + Example v0.5.3
与命令行一样,您可以同时添加多个软件包,例如用逗号列出它们的名称,并添加方括号创建字符串数组:
Pkg.add(["Example", "Plots"])
要删除软件包,请使用 rm
命令:
Pkg.rm("Example")
要同时删除多个软件包,可使用逗号和方括号枚举软件包名称:
Pkg.rm(["Example", "Plots"])
删除 "命令在脚本编辑器中没有定义,但在命令行中可以使用。试图在编辑器中调用该命令会产生错误:
`UndefVarError: `remove` not defined`
在脚本编辑器中,Pkg 软件包管理器名称和 Julia 软件包名称区分大小写,并且必须以大写字母开头,否则会出现错误信息。 |
软件包状态
要了解哪些软件包已安装并可以使用,请打开命令提示符并执行以下步骤:
-
通过] 登录 Pkg 软件包管理器。
-
键入命令
status
:
pkg> status
之后,你将看到已安装软件包及其版本的列表:
软件包状态显示
pkg> status
Status `/user/.project/Project.toml`
⌅ [c3fe647b] AbstractAlgebra v0.27.8
⌅ [7d9f7c33] Accessors v0.1.27
⌅ [79e6a3ab] Adapt v3.5.0
⌅ [91a5bcdd] Plots v1.36.1
⌃ [c3e4b0f8] Pluto v0.19.36
符号 ⌃
和 ⌅
表示软件包有了新版本:
-
⌃
- 有更新的版本。 -
⌅
- 有更新的版本,但与其他软件包有兼容性冲突。
您还可以通过脚本编辑器了解哪些软件包已安装并可以使用:
-
输入
import Pkg
(如果之前没有输入过)。 -
输入
Pkg.status()
获取软件包的状态。
下载软件包
Julia 使用 import
和 using
操作符加载软件包,并提供对其特定元素(如函数、类型和变量)的访问:
-
using
用于加载模块的所有导出名称,并将它们绑定到当前名称空间。例如using Statistics x = mean([1, 2, 3, 4, 5])
-
import` - 用于有选择地从模块中导入某些函数或变量。要求在函数或变量名之前指定模块名。因此,未明确导入的函数或变量在当前环境中将不可用。
例如
import Statistics x = Statistics.mean([1, 2, 3, 4, 5])
考虑操作员的优势和局限性:
-
使用 "的优点是方便。代码变得更宽松,模块中的所有函数和变量都可以在当前命名空间中使用。
-
使用 "的缺点—使用 "使用 "加载包含许多函数和变量的大型模块可能会影响性能和内存溢出。
-
using
的缺点是名称冲突。如果多个模块定义了同名的函数或变量,using
可能会导致名称冲突。 -
import`的优点是没有名称冲突。
-
导入 "的优点是避免编译不必要的代码,从而减少编译时间。
-
导入 "的缺点是代码复杂。
因此,"使用 "操作符更适合强调便捷性的小型项目。导入 "操作符更适用于注重选择性和内存使用控制的大型项目。