NIM在哪里搜索要导入的模块



使用import语句时,NIM如何/何处对模块进行搜索?

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

我还没有使用灵活性,我认为这是一种方法,但是我对如果模块是仅在本地定义的

nim在以下位置搜索模块:

  1. 相对于导入模块的目录(如果不在同一目录中,则通过import dir.modnameimport dir/modname)。
  2. 相对于主模块的目录(同样,如果不在同一目录中,则通过import dir.modnameimport dir/modname)。
  3. 在命令行选项--path-p指定的目录中。
  4. 在Nimble Package目录中,通常为~/.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"

您基本上有两个选项:

  1. 您可以通过编译命令中的搜索路径: nim c -p:~/myModulePath

  2. 您可以通过path="$home/myModulePath"将搜索路径添加到config/nim.cfg。该文件还告诉您默认情况下NIM寻找导入的方式/位置。

nim dump命令将向您展示路径中的内容。查看高级编译器选项的文档。

最新更新