Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

nim-lang

Following is the content of foo.py

import sys
print(sys.executable)

When I execute this, I can get the full path of the the Python interpreter that called this script.

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

How to do this in nim (nimscript)?

like image 655
Dilawar Avatar asked Mar 02 '23 10:03

Dilawar


2 Answers

If you want to do that in Nim (not NimScript), you can take compiler executable path using https://nim-lang.org/docs/os.html#getCurrentCompilerExe

import os

echo getCurrentCompilerExe()
like image 116
Davide Galilei Avatar answered Mar 18 '23 13:03

Davide Galilei


The question mentions 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 to get the path to the Nim executable which is running a NimScript script:

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

echo selfExe()

After saving the above as test.nims and using chmod +x to make the file executable, the script can be invoked to show the path to the current Nim executable:

$ ./test.nims
/home/.choosenim/toolchains/nim-1.4.8/bin/nim
like image 40
ad absurdum Avatar answered Mar 18 '23 14:03

ad absurdum