Engee 文档

使用Julia软件包

*Julia包*是一组有组织的现成函数,类和对象,用于解决各种任务。 Julia包可以使用Pkg包管理器安装并在您的项目中使用。 如果您需要将软件包更清晰地分离为用户软件包和系统软件包,请使用 EngeePkg

在*Engee*中,Julia包也通过内置的Pkg包管理器使用两个工作区工具来处理。 — 命令提示符 img 41 1 2脚本编辑器 img41 1.

在处理大量包时,使用脚本编辑器很方便,在调用Pkg后不需要重新初始化。 如果您更习惯于使用脚本编辑器界面之外的代码并使用少量包,则命令行非常有用。

有关使用Pkg包管理器的详细描述,请参阅 Pkg.

包的工作原理

  1. 找到您感兴趣的包的确切名称。 Julia生态系统包含在通用注册表中注册的一万多个软件包,这可能会使找到合适的软件包变得非常困难。 为了优化您的搜索,我们建议您参考以下来源:

    • 编程 -Engee部分与完整的朱莉娅文件在俄罗斯。

    • JuliaHub是一项服务,用于搜索开源软件包的所有注册文档,并能够按标签和关键字进行排序。

    • Julia Packages是一个在线资源,旨在搜索,探索和查看Julia软件包,并能够按类别,受欢迎程度和日期自定义过滤器。

    • 朱莉娅。jl是Julia编程语言的主要包存储库。 此存储库存储在GitHub平台上,包含社区开发的许多有用的软件包和工具,用于使用Julia语言。

  2. 选择用于处理包的工具-命令行或脚本编辑器,具体取决于您的任务。

  3. 通过添加Pkg包管理器初始化在Julia中使用包。 添加管理器的语法因所选工具而异。

  4. 使用`add`命令将包添加到您的环境中,以便在项目中使用它们。 添加包的语法取决于所选工具。

  5. 将包上传到命名空间并使用`using`和`import`运算符访问其特定元素。 您也可以添加自己的包。

  6. 如有必要,通过"状态"找出包状态,检查哪些包被加载到*Engee*RAM中,并通过"删除"或"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"。添加("包名")'。 例如,包含添加`Example`包的代码的部分将如下所示:

import Pkg
Pkg.add("Example")

按下*开始按钮后* img 1 1 2 将在此部分导入Pkg包管理器,并安装"示例"包。 有关软件包安装进度的信息将自动显示。:

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"])

"Remove"命令没有在脚本编辑器中定义,尽管它在命令行中使用。 尝试在编辑器中调用该命令将返回错误。:

`UndefVarError: `remove` not defined`
在脚本编辑器中,Pkg包管理器的名称和Julia包名称区分大小写,并且必须以大写字母开头,否则您将收到错误消息。

包装状况

要找出已安装并可供使用的软件包,请打开命令提示符并按照以下步骤操作:

  1. 通过以下方式登录Pkg包管理器 ].

  2. 输入"状态"命令:

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

字符'⌃'和`⌅'表示软件包有新版本。:

  • '⌃'—一个较新的版本是可用的。

  • '⌅`-一个较新的版本可用,但与其他软件包存在兼容性冲突。

您还可以通过脚本编辑器了解已安装并准备好使用的软件包。:

  1. 如果您以前没有这样做,请输入"导入Pkg"。

  2. 输入’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`加载具有许多函数和变量的大型模块会影响性能和内存溢出。

  • "使用"的缺点是名称冲突。 如果多个模块定义具有相同名称的函数或变量,则"使用"可能会导致名称冲突。

  • "导入"的优点是没有名称冲突。

  • "导入"的优点是减少了编译时间,避免了编译不必要的代码。

  • "导入"的缺点是代码的复杂性。

因此,"使用"操作符更适合于强调方便性的小型项目。 "导入"运算符更适用于强调对内存使用的选择性和控制的大型项目。