【问题标题】:Can I check for any version of python 3+ on a linux box我可以在 linux 机器上检查任何版本的 python 3+
【发布时间】:2020-02-07 08:19:09
【问题描述】:

操作系统:CentOS

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

同样,我希望我使用 python3、python34、python36 或其他任何可用的东西。

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

有没有办法解决这个问题?

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

PRETTY_NAME="CentOS Linux 7 (Core)"

yum install -y python34
yum list installed | grep python3
# python34.x86_64                       3.4.10-2.el7                     @epel    
# python34-libs.x86_64                  3.4.10-2.el7                     @epel 
which python3 
# usr/bin/which: no python3 in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
which python3.4
# /usr/bin/python3.4

【问题讨论】:

  • 理想情况下(如果您的发行版人员正在做正确的事情),正确打包的python34python36 或任何将以名称@987654325 可用@,所以你应该总是能够运行python3
  • 如果命令which python3 没有返回任何结果,您知道如果操作系统发行版不提供python 版本,您必须安装python 3 版本,您可能需要查看pyenv @ 987654321@
  • 查看编辑:yum install python34 没有创建 python3 链接。我同意它应该,但它目前不在我的控制之下
  • 不是答案,但您可以查看 bash-completion 如何为 python3<tab><tab> 工作
  • python3x 是否安装了“python”链接?那么你可以检查python --version的结果当然你可能会发现这是版本2,即使你也安装了3x。

标签: python python-3.x bash python-2.7 rpm


【解决方案1】:

为了后代,我会发布我的解决方案

#!/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

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    相关资源
    最近更新 更多