CentOS7 Docker镜像中pip安装molecule时报python setup.py egg_info错误如何解决
问题根因
所有语法报错的核心原因是 CentOS 7 默认自带的Python版本为2.7,而当前最新版的pip、setuptools、molecule均已停止支持Python 2.7,Python 2.7无法识别新版本依赖中的Python 3语法(比如类型标注、raise ... from ...语法等)。
解决方案
方案一:使用Python 3安装(推荐)
CentOS 7官方源提供Python 3版本,切换为Python 3环境安装即可规避兼容问题,Dockerfile配置参考如下:
# 安装Python3、pip3及编译所需依赖组件 RUN yum install -y python3 python3-pip python3-devel gcc openssl-devel libyaml-devel && \ yum clean all # 用pip3安装molecule,可根据需求指定版本,示例为安装最新稳定版 RUN pip3 install molecule
方案二:沿用Python 2.7环境,锁定兼容版本
若必须使用默认的Python 2.7环境,需将所有相关依赖锁定到支持Python 2.7的最后版本,Dockerfile配置参考如下:
# 锁定所有依赖为Python 2.7兼容的最高版本 RUN pip install --upgrade "pip<21.0" "setuptools<45" "setuptools-scm<6.0" && \ pip install "molecule<3.3"
注意事项
- 优先选择方案一,Python 2.7已停止官方维护,存在较多安全漏洞,且新版molecule的所有新功能仅支持Python 3环境。
- 若构建过程中出现其他依赖类报错,可根据报错提示安装对应的系统依赖包即可。
内容的提问来源于stack exchange,提问作者Ruth Edges
相关产品推荐
相关产品推荐

