gpt4 book ai didi

python - 如何编写将调用 python3 或 python2 的 shebang 行,以可用者为准

转载 作者:行者123 更新时间:2023-12-05 03:50:46 25 4
gpt4 key购买 nike

流行的 linux 发行版的最新版本默认选择不安装任何 python 命令。这使得编写适用于旧系统和新系统的可移植脚本变得异常困难。

臭味选项:

  • 在打包或安装时重写脚本
  • 强制用户使用版本控制的 python 解释器调用脚本
  • 期望用户会运行 update-alternatives 或类似的

有没有一种方法可以编写一个 shebang #! 行,该行仅使用通常安装的标准 linux 标准工具,并且可以运行 python3python2python

我想要一些类似于 env 命令的虚构的 --choices 参数

#!/usr/bin/env --choices python3,python2,python

但这当然不存在。

最佳答案

基于 https://stackoverflow.com/a/9051635/13596037 的想法,你可以这样做:

#!/bin/bash
'''':
for interpreter in python3 python2 python
do
which $interpreter >/dev/null 2>&1 && exec $interpreter "$0" "$@"
done
echo "$0: No python could be found" >&2
exit 1
# '''


import sys
print(sys.version)

关于python - 如何编写将调用 python3 或 python2 的 shebang 行,以可用者为准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63360890/

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