此问题的正确答案取决于安装的 OS AMI。
对于这个问题,有几个选项可以解决这个问题:
- 使用
python3
因为python
(python 2.x) 没有安装。
- 安装 python 2.x (Ubuntu):
sudo apt-get install python
- 执行命令:
sudo ln /usr/bin/python3 /usr/bin/python
链接python
到目录中python3
。/usr/bin
Amazon Linux 2 安装了 Python 2.7.14。支持命令“python”、“python2”和“python2.7”。默认情况下不安装 Python 3。
Ubuntu 16.04 64 位已安装 Python 3.5.2。支持命令“python3”和“python3.5”。请注意,没有指向“python”的链接。默认情况下不安装 Python 2。
我在 Amazon Linux 2 和 Python 2.7 中注意到的一项。该命令python -V
将版本字符串写入stderr,这会让您认为该命令失败,因为当命令实际成功时,SSM Run Command 将显示如下输出。我发现 SSM 运行命令只是在 stdout 分隔后显示 stderr----------ERROR-------
----------ERROR-------
Python 2.7.14
Python 3 将版本字符串写入标准输出。这花了我几个小时才弄清楚,因为直到今天我才注意到 Python 2.x 的 stderr 问题。
关于我测试的 AMI 的信息。
地区:us-west-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)