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

gec*_*eca 1 python openshift kubernetes

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

Invalid environment marker: platform_python_implementation != 'PyPy'
Run Code Online (Sandbox Code Playgroud)

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

Gra*_*ton 5

跑:

oc set env bc/yourappname UPGRADE_PIP_TO_LATEST=true
Run Code Online (Sandbox Code Playgroud)

看到:

当你做到这一点应该更新pipsetuptoolswheel包。

唯一的问题是,此时此刻,基于RHEL的Python S2I映像中尚未进行的更改setuptools以及wheel更新的更改。因此,如果您使用的是OpenShift容器平台(由OpenShift Online使用),它将无法按要求工作。

解决方法的第一个选择是暂时使用基于CentOS的映像:

oc new-app centos/python-27-centos7~https://url-to-your-repo
Run Code Online (Sandbox Code Playgroud)

第二种选择是.s2i/bin/assemble在您的源代码存储库中添加一个可执行的外壳脚本,该脚本包含:

#!/bin/bash

set -eo pipefail

pip install --upgrade pip setuptools wheel

/usr/libexec/s2i/assemble
Run Code Online (Sandbox Code Playgroud)

这将代替常规assemble脚本执行,从而允许您安装更新。然后,您运行原始assemble脚本。