gpt4 book ai didi

python - 我可以有两条shebang行,一条用于python,另一条用于python3吗?

转载 作者:行者123 更新时间:2023-12-03 09:45:40 25 4
gpt4 key购买 nike

我有一个可以在多个Linux操作系统上运行的脚本。我的脚本的shebang行是:
#!/usr/bin/python
当我遇到CentOS 8时,此操作不起作用,因为我得到以下信息:
“-bash:./sysinfo-snapshot.py:/usr/bin/python:错误的解释器:没有这样的文件或目录”

作为解决方法,我可以将shebang行更改为

#!/usr/bin/python3

这将100%解决问题。

但是,我要寻找的是让我的脚本尝试第一行,如果不起作用,请尝试第二行,如代码中的第二行:
#!/usr/bin/python

#!/usr/bin/python3

这可能吗?
有没有一种方法可以同时支持python和python3?与第一行一样,尝试第一行,如果不行,请尝试第二行。

我到目前为止尝试的事情:
我尝试将shebang行更改为: #!/usr/bin/env python但这没有用。

谢谢

最佳答案

您可能没有shebang并使用适当的python二进制文件执行脚本;例如

$ python3 yourscript.py

要么
$ python yourscript.py

而且您不需要脚本的可执行权限。

因此,要使其具有可移植性,请使用包装器脚本:
#!/bin/bash

if [ -x /usr/bin/python3 ]; then
/usr/bin/python3 yourscript.py
else
/usr/bin/python yourscript.py
fi

关于python - 我可以有两条shebang行,一条用于python,另一条用于python3吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60695244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com