Engee 文档

英语中的朱莉娅环境

advanced users cn

"Import"和"using"语句在代码和上传文件的上下文中有所不同,具体取决于当前环境。 Julia中有两种类型的环境:

  • Project environment(项目环境)是一组文件和设置,用于定义特定项目的开发和执行的环境。 项目环境包括在项目中使用的设置和依赖项。 在Julia中,项目环境是使用项目定义的。汤姆和清单。toml文件,其中包含有关依赖项及其版本的信息。:

    • 项目文件(Project.toml)是一个包含有关项目直接依赖关系的信息的文件。 它定义了项目中使用的名称和标识符(例如,包名称)。 此文件通常只包含直接依赖项及其版本。

    • 清单文件(Manifest.toml)是描述项目依赖关系的完整图(数据结构)的文件(如果存在)。 不仅包括直接依赖关系,还包括项目中使用的所有间接依赖关系。 对于每个依赖项,指定了确保项目源代码与其依赖项版本兼容所需的确切版本(例如,包)和其他信息。

  • 项目目录是包含项目文件和结构的地方,包括源代码、设置、配置文件和包集。 项目环境是由项目目录内的文件和目录结构自然形成的。 该目录包含组织到子目录层次结构中的包和模块。 如果包目录内有文件,则包名为。jl’在子目录’src'—这意味着包’包名`在这个项目中是可用的,它的代码是通过这个文件加载的。

因此,项目环境是项目依赖项所在的抽象环境,而项目目录是项目文件物理存储的地方。 阅读更多 上传代码.

Julia环境定义了哪些包和依赖项应该可用于特定的项目或应用程序。 然后LOAD_PATH用作路径数组,告诉Julia在哪里查找与此环境相关的包和模块。:

  • *LOAD_PATH[1]*是path数组的第一个元素,它指定用户环境文件的路径。 自定义清单。toml和项目。toml文件指定此项目需要哪些包和哪些版本。 LOAD_PATH本身在添加包(Pkg)时也不会更改。添加)或更改toml环境文件时。 默认情况下,用户环境是使用路径`/user/创建的。项目'。 这允许Julia查找并下载在给定项目中执行代码所需的包。

  • *LOAD_PATH[2]*是path数组的第二个元素,它指定系统环境文件的路径。 LOAD_PATH[2]指定所有项目可用且独立于特定项目的系统包的路径。 Manifest等全局toml文件的路径。toml和项目。LOAD_PATH[2]元素中不包含toml。 而是指定包含这些文件的目录的路径。 因此,可以从任何项目访问系统安装的软件包,而不管在其自己的项目和清单文件中列出了哪些软件包。 默认情况下,系统环境是使用路径`/user/local/julia-1创建的。M.N/环境/v1。M’,其中’M’和’N’是当前项目中的Julia版本。

LOAD_PATH不仅可以包含path数组的两个元素,还可以包含指向包所在目录的任意数量的路径。 当Julia使用`using`或`import’搜索要下载的包时,它会检查LOAD_PATH中指定的所有路径。

除了LOAD_PATH,还有loaded_modules包的子集。 loaded_modules(已加载模块)是指当前Julia会话中当前处于活动状态的模块(或包)列表。 每个模块都是一组已加载并准备在代码中使用的函数和数据。

因此,Julia可以从所有环境下载和使用必要的包,这些路径在LOAD_PATH数组的元素中指定。 的’基地。loaded_modules的函数返回已加载模块的列表。 为了更好的感知,下面的图片呈现。:

julia libs 1

Julia可以使用LOAD_PATH[1]和LOAD_PATH[2]路径数组元素中指定的路径下载和使用项目所需的包。 然后使用’using’和’import`:

  • 'using—-如果您需要加载模块并使其所有导出符号在当前命名空间中可用,请使用`using'。 'using’将模块加载到内存中,并将其添加到已加载模块列表(loaded_modules)中,这意味着它的函数和变量可以直接在代码中使用。 当您需要频繁使用模块中的函数或变量而无需再次指定其名称时,这很有用。

  • 'import'-如果需要加载模块,请使用`import`,但不需要将其所有字符导入当前命名空间。 'import’不会将模块加载到内存中或将其添加到loaded_modules,而是创建引用,允许通过限定名称使用符号。 如果您只需要模块中的某些字符,或者您需要显式指定它们的来源以避免命名冲突,请使用`import`。

所以主要的区别在于’using’下载并导入模块的所有导出符号,而`import`创建了一个指向模块的链接,允许您选择使用哪些符号。