Openshift V3上的Python 2.7:在构建之前更新setuptools?

时间:2017-10-25 08:07:51

标签: python kubernetes openshift

安装cryptography软件包时出现以下错误:

Invalid environment marker: platform_python_implementation != 'PyPy'

似乎升级setuptools会解决这个问题。有没有办法可以编辑Build Config YAML文件,以便在构建任何包之前运行pip install --upgrade setuptools

1 个答案:

答案 0 :(得分:5)

执行命令

oc set env bc/yourappname UPGRADE_PIP_TO_LATEST=true

请参阅:

执行此操作时,应更新pipsetuptoolswheel个包。

唯一的问题是,在这一分钟,所做的更改setuptoolswheel也已更新,但尚未在基于RHEL的Python S2I图像中。因此,如果您使用的是OpenShift Container Platform(由OpenShift Online使用),它将无法按要求运行。

解决方法的第一个选项是立即使用基于CentOS的图像:

oc new-app centos/python-27-centos7~https://url-to-your-repo

第二个选项是在源代码仓库中添加一个名为.s2i/bin/assemble的可执行shell脚本,其中包含:

#!/bin/bash

set -eo pipefail

pip install --upgrade pip setuptools wheel

/usr/libexec/s2i/assemble

将执行此操作而不是正常的assemble脚本,允许您安装更新。然后,您运行原始的assemble脚本。