使用import
语句时,Nim如何/在何处执行模块搜索?
我知道可以使用文件路径,但是如果我不想使用文件路径,我会在哪里将我在本地定义的模块放在我的机器上?
我还没有使用Nimble而且我认为这是单向的,但如果模块仅定义,我对如何做到这一点更感兴趣本地。
答案 0 :(得分:9)
Nim在以下地方搜索模块:
import dir.modname
或import dir/modname
。)import dir.modname
或import dir/modname
。)--path
或-p
指定的目录中。~/.nimble/pkgs
。命令nim dump
将显示正在使用的所有模块搜索路径(Nimble包除外)。
您可以执行以下操作来使用自己的模块:
--path/-p
命令行选项将包含它们的目录传递给编译器。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 :(得分:3)
您基本上有两个选择:
您可以在编译命令中传递搜索路径:nim c -p:~/myModulePath
。
您可以config/nim.cfg
向path="$home/myModulePath"
添加搜索路径。此文件还会告诉您Nim默认情况下Nim查找导入的方式/位置。
答案 2 :(得分:1)
nim dump
命令会显示您路径中的内容。请查看advanced compiler options的文档。