获取用于运行当前Python脚本的Python命令

时间:2018-08-24 01:46:52

标签: python

如果我运行Python脚本,请使用foo.py

$ python3.6 foo.py

sys.argv将返回['foo.py']。但是我想要一些能够返回用于启动脚本的命令名称的工具。在这种情况下,'python3.6'

这可能吗?

1 个答案:

答案 0 :(得分:3)

听起来您正在寻找sys.executable

  

一个字符串,给出有意义的系统上Python解释器的可执行二进制文件的绝对路径。如果Python无法检索其可执行文件的真实路径,则sys.executable将为空字符串或None

通常用于通过subprocess.run([sys.executable, 'spam.py', 'arg')运行另一个Python脚本之类的事情。

这为您提供了通往Python解释器的绝对路径。如果只需要名称,请使用os.path.basename(sys.executable)

请记住,/usr/local/bin/python3.6实际上总是有可能是名为/opt/local/python3.6/bin/python3的东西的符号链接甚至是垫片启动器,在这种情况下,您可能会得到后面的路径,然后对其进行基础命名会给您python3,但是运行python3可能会运行不同的python3,这在路径上会更高。使用绝对路径,您将不会遇到问题。