nim 等同于 Python 的 `sys.executable` 是什么?

What is nim's equivalent of Python's `sys.executable`?

以下是foo.py

的内容
import sys
print(sys.executable)

当我执行这个时,我可以获得调用这个脚本的 Python 解释器的完整路径。

$ /mingw64/bin/python3.9.exe foo.py
/mingw64/bin/python3.9.exe

如何在 nim (nimscript) 中执行此操作?

Nim 已编译,所以我假设您想获取应用程序自己的二进制文件的路径?如果是这样,您可以使用:

import std/os

echo getAppFilename()

问题提到 NimScript, which has other uses in the Nim ecosystem, but can also be used to write executable scripts instead of using, e.g., Bash or Python. You can use the selfExe proc 获取 Nim 可执行文件的路径,它是 运行 NimScript 脚本:

#!/usr/bin/env -S nim --hints:off
mode = ScriptMode.Silent

echo selfExe()

将以上内容保存为test.nims并使用chmod +x使文件可执行后,可以调用脚本显示当前Nim可执行文件的路径:

$ ./test.nims
/home/.choosenim/toolchains/nim-1.4.8/bin/nim

如果你想在 Nim(而不是 NimScript)中这样做,你可以使用 https://nim-lang.org/docs/os.html#getCurrentCompilerExe

获取编译器可执行文件路径
import os

echo getCurrentCompilerExe()