我可以检查python 3+;在linux机器上

我可以检查python 3+;在linux机器上,python,python-3.x,bash,python-2.7,rpm,Python,Python 3.x,Bash,Python 2.7,Rpm,OS:CentOS 我想将python脚本部署为更大包的一部分,任何python3+都可以。在我们这里的虚拟机上,我看到了python3、python36、python36u和python34。如果没有,我不想安装新的python3+,如果这个盒子只有python2+,我想安装python3 同样,我希望使用python3、python34、python36或其他任何可用的工具 我使用.rpm进行部署,但我还没有在规范文件中管理这种复杂性。我的工作是编写一个bash脚本来处理python检测和安

OS:CentOS

我想将python脚本部署为更大包的一部分,任何python3+都可以。在我们这里的虚拟机上,我看到了python3、python36、python36u和python34。如果没有,我不想安装新的python3+,如果这个盒子只有python2+,我想安装python3

同样,我希望使用python3、python34、python36或其他任何可用的工具

我使用.rpm进行部署,但我还没有在规范文件中管理这种复杂性。我的工作是编写一个bash脚本来处理python检测和安装

有没有办法处理这个问题

编辑-添加有关软件包安装的详细信息

PRETTY_NAME=“CentOS Linux 7(核心)”


为了子孙后代,我将发布我的解决方案

#!/usr/bin/env bash

export PYTHONS
export RVAL
PYTHONS=$(compgen -c | grep "^python3.*[0-9]*$")
RVAL=$?

if [ $RVAL -ne 0 ] ; then
  yum install -y python3
  PYTHON="python3"
else
  PYTHON=$(echo "$PYTHONS" | head -1)
fi

echo "$PYTHON"

$PYTHON myscript.py

理想情况下(如果您的发行版人员做了正确的事情),一个适当打包的
python34
python36
或任何名称下的python3都可以使用,因此,您应该始终能够运行
python3
。如果命令
which python3
没有返回任何结果,您知道您必须安装一个版本的python3,如果操作系统发行版没有提供python版本,您可能需要查看pyenv请参见编辑:yum install python34没有创建python3链接。我同意应该这样做,但它目前不在我的控制之下。这不是答案,但您可以看看bash completion在
python3
上是如何工作的,python3x是否安装了“python”链接?然后您可以检查python的结果--version当然您可能会发现它是版本2,即使您也安装了3x。
#!/usr/bin/env bash

export PYTHONS
export RVAL
PYTHONS=$(compgen -c | grep "^python3.*[0-9]*$")
RVAL=$?

if [ $RVAL -ne 0 ] ; then
  yum install -y python3
  PYTHON="python3"
else
  PYTHON=$(echo "$PYTHONS" | head -1)
fi

echo "$PYTHON"

$PYTHON myscript.py