如果我运行一个Python脚本,foo.py用
$ python3.6 foo.py
Run Code Online (Sandbox Code Playgroud)
sys.argv会回来['foo.py']。但我想要一些可以返回用于启动脚本的命令名称的东西。在这种情况下'python3.6'。
这可能吗?
听起来您正在寻找sys.executable:
在有意义的系统上,给出 Python 解释器的可执行二进制文件的绝对路径的字符串。如果 Python 无法检索其可执行文件的真实路径,则为
sys.executable空字符串或None.
这通常用于通过subprocess.run([sys.executable, 'spam.py', 'arg').
这为您提供了 Python 解释器的绝对路径。如果您只想要名称,请使用os.path.basename(sys.executable).
请记住,总是有可能,例如,/usr/local/bin/python3.6实际上只是一个符号链接,甚至是一个名为 shim 的启动器,例如/opt/local/python3.6/bin/python3,在这种情况下,您可能会得到后一种路径,然后对其进行基础命名,python3然后运行python3可能会python3在路径上运行一个更高的不同。使用绝对路径,你不会有这个问题。
| 归档时间: |
|
| 查看次数: |
482 次 |
| 最近记录: |