如何在 Chef 中安装 python 3.5

How to install python 3.5 in chef

我正在尝试在厨师食谱中安装 python 3.5。我尝试使用 poise-python 食谱。阅读文档后。我尝试了以下命令,但它没有安装 python 3.5。它安装 python2.7

python_runtime 'python3' do
version '3.5'
end

输出

 * python_runtime[python3] action install
   * poise_languages_scl[rh-python35] action install
     * yum_package[centos-release-scl-rh] action upgrade
- upgrade package centos-release-scl-rh from uninstalled to 2-2.el7.centos
     * ruby_block[flush_yum_cache] action run
- execute the ruby block flush_yum_cache
     * yum_package[rh-python35] action install
- install version 2.0-2.el7 of package rh-python35
     * yum_package[rh-python35-python-devel] action install (up to date)

   * python_runtime_pip[python3] action install (up to date)
   * python_package[setuptools] action install (up to date)
   * python_package[wheel] action install
     - install version 0.29.0 of package wheel

如有任何帮助,我们将不胜感激。我可以使用执行到 运行 安装命令的路线,但更愿意使用食谱。

如您在日志中所见,它正在通过 SCL 包安装 3.5。我猜您认为它是 2.7,因为之后您要手动 运行ning /usr/bin/python -v。那不是你使用 SCL 包的方式,运行 scl enable rh-python35 "python -v" 你会看到 3.5。本食谱在内部为您完成此操作。

另一种选择是使用 python_runtime 创建虚拟环境,例如:

python_runtime 'python2' do
  version '2.7'
  action :install
end

python_virtualenv "/mnt/env/python2" do
 user "root"
 python 'python2'
 action :create
end

现在如果你激活 virtualenv:

source /mnt/env/python2/bin/activate

并检查 python 版本:

python -v

和安装的一样