Nim在哪里搜索要导入的模块?

Lye*_*ish 7 import module nim-lang

使用该import语句时,Nim如何/在何处执行模块搜索?

我知道可以使用文件路径,但是如果我不想使用文件路径,那么我将在本地定义的模块放在我的机器上?

我还没有使用过Nimble,我认为这是一种方式,但是我更感兴趣的是如果模块在本地定义,它将如何完成.

Rei*_*nds 10

Nim在以下位置搜索模块:

  1. 相对于导入模块的目录(通过import dir.modnameimport dir/modname如果它不在同一目录中).
  2. 相对于主模块的目录(再次,通过import dir.modnameimport dir/modname如果它不在同一目录中).
  3. 在命令行选项--path或指定的目录中-p.
  4. 在Nimble包目录中,通常是~/.nimble/pkgs.
  5. 在标准库中.

该命令nim dump将显示正在使用的所有模块搜索路径(Nimble包除外).

您可以执行以下操作来使用自己的模块:

  1. 使用--path/-p命令行选项将包含它们的目录传递给编译器.
  2. 将相同的命令行选项放入其中一个配置文件中.其中有几个,全局文件(用于系统范围的设置),用户文件(用于每个用户设置),项目文件(用于项目设置)和父目录配置文件(用于目录)是当前项目目录的父项,用于多个项目共享的配置).选择具有您需要的范围的那个.
  3. 使用Nimble为当前用户完成的任何项目安装模块.为此,在目录中创建一个libname.nimble(替换libname为实际名称)文件并使用nimble install.然后,您可以*.nim直接从任何其他项目导入该库中的文件.用于nimble uninstall libname再次卸载库.

基本libname.nimble文件具有以下内容.

[Package]
name = "libname"
author = "Your Name"
version = "0.1"
description = "Example library."
license = "none"
Run Code Online (Sandbox Code Playgroud)