AWS Run命令:未找到Python

AWS Run命令:未找到Python,python,amazon-web-services,boto3,amazon-systems-manager,Python,Amazon Web Services,Boto3,Amazon Systems Manager,我正在使用Boto3 SSM在我的实例中运行命令 当我运行诸如echohello world或mkdir abc之类的简单命令时,它工作正常,并提供预期的输出。但是当我试图运行python-V或任何其他python命令时。输出为未找到python。但是python在我运行Ubuntu的EC2实例中。当我手动检查时,它工作正常 代码: boto3.ssm并不意味着用作快速外壳注入工具。您需要安装以执行更高级的触发,反之亦然 使用python3有效。另一件需要提及的事情是,它在系统中使用了核心pyt

我正在使用Boto3 SSM在我的实例中运行命令

当我运行诸如echo
hello world
mkdir abc
之类的简单命令时,它工作正常,并提供预期的输出。但是当我试图运行
python-V
或任何其他python命令时。输出为
未找到python
。但是python在我运行Ubuntu的EC2实例中。当我手动检查时,它工作正常

代码:


boto3.ssm并不意味着用作快速外壳注入工具。您需要安装以执行更高级的触发,反之亦然

使用
python3
有效。另一件需要提及的事情是,它在系统中使用了核心python,并且不识别安装的任何其他版本

此问题的正确答案取决于安装的OS AMI

对于此问题,有几个选项可以解决此问题:

  • 使用
    python3
    ,因为未安装
    python
    (python2.x)
  • 安装python 2.x(Ubuntu):
    sudo-apt-get-Install-python
  • 执行命令:
    sudo ln/usr/bin/python3/usr/bin/python
    python
    链接到
    /usr/bin
    目录中的
    python3
AmazonLinux2安装了Python 2.7.14。支持命令“python”、“python2”和“python2.7”。默认情况下不安装Python 3

Ubuntu 16.04 64位安装了Python 3.5.2。支持命令“python3”和“python3.5”。请注意,没有指向“python”的链接。默认情况下不安装Python 2

我在AmazonLinux2和Python2.7中注意到了一点。命令
python-V
将版本字符串写入stderr,这将使您认为命令失败,因为当命令实际成功时,SSM Run命令将显示如下输出。我发现SSM Run命令只是在stdout后面显示stderr,stdout之间用
-------ERROR------

----------ERROR-------
Python 2.7.14
Python3将版本字符串写入标准输出。这花了我几个小时才弄明白,因为直到今天我才注意到Python2.x的stderr问题

关于我测试的AMI的信息

地区:美国西部2号(俄勒冈州)

亚马逊Linux 2: amzn2-ami-hvm-2.0.20180810-x86_64-gp2(ami-6cd6f714)

Ubuntu 16.04 LTS:
ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180814(ami-51537029)

尝试使用sudo-apt-get-install安装python。我的实例中有python。我已经提到过了。
boto3.client
这个客户端支持流吗?试试
/usr/bin/python
,而不仅仅是
python
?它不工作。是我做的。没有这个,你无论如何也不能注射。
----------ERROR-------
Python 2.7.14