CentOS 6.10部署CloudWatch Logs Agent时virtualenv创建失败求助
搞定CloudWatch Logs Agent安装失败的问题
兄弟,你这问题我遇过好几次了——CentOS 6.10自带的Python 2.6版本过于陈旧,你当前装的pip 19.0.3和virtualenv都是为Python 2.7+设计的,用到了Python2.6不支持的语法,才会报那些错误:
- 集合字面量
{errno.EAGAIN, errno.EWOULDBLOCK}:Python2.6不支持这种写法,得用set()创建 print("ERROR: {}".format(...)):Python2.6的str.format()不允许空字段名,必须写成{0}.format(...)
下面给你两种解决方案,选一种就行:
方案一:降级pip和virtualenv到兼容版本
1. 先卸载当前不兼容的pip
sudo pip uninstall -y pip
如果卸载报错,直接删掉残留的egg文件:
sudo rm -rf /usr/lib/python2.6/site-packages/pip-19.0.3-py2.6.egg
2. 安装Python2.6兼容的pip版本
Python2.6最高支持pip 9.0.3,用官方脚本安装:
sudo curl https://bootstrap.pypa.io/pip/2.6/get-pip.py | python2.6
3. 安装兼容的virtualenv版本
virtualenv最高支持Python2.6的版本是16.7.9,执行:
sudo pip install virtualenv==16.7.9
4. 重新运行安装脚本
现在再执行awslogs的安装脚本,应该就能正常创建virtualenv了。
方案二:换成Python2.7(更推荐,长期省心)
CentOS6.10可以安装Python2.7,生态支持好很多,步骤如下:
- 安装Python2.7和依赖:
sudo yum install -y python27 python27-devel python27-pip
- 可选:把Python2.7设为默认(不影响系统原有Python2.6):
sudo alternatives --install /usr/bin/python python /usr/bin/python2.6 10 sudo alternatives --install /usr/bin/python python /usr/bin/python2.7 20
- 用Python2.7的pip装virtualenv:
sudo pip2.7 install virtualenv
- 指定Python2.7运行安装脚本:
sudo python2.7 awslogs-agent-setup.py
内容的提问来源于stack exchange,提问作者blaCkninJa
相关产品推荐
相关产品推荐

