Docker:如何在 Centos 6.8 docker 文件中设置和使用 python 2.7

Posted

技术标签:

【中文标题】Docker:如何在 Centos 6.8 docker 文件中设置和使用 python 2.7【英文标题】:Docker: How to set and use python 2.7 in Centos 6.8 docker file 【发布时间】:2018-07-31 19:14:40 【问题描述】:

我在 python 2.7 版本中制作了一个编程模型,并希望通过在 Docker 文件中使用它在 Centos 6.8 版本上运行它。

目前我的Docker File中有两个版本的python:

    2.6.6(默认无法移除) 2.7.8

但是当我开始使用 pip 安装库时,它会安装在 python 2.6 版本中

我想制作一个 Docker 文件,这样人们就不需要手动进入容器并创建系统链接来使用它。

它应该全部包含在 Docker 文件本身中。 有没有人可以让我清楚地知道这仅在 Centos 6 中是如何实现的。

【问题讨论】:

为什么一定要Centos 6?为什么不能使用现有的 Python 图像? 在任何情况下,默认的 Python 首先在 PATH 上。这与 CentOS 6 无关。***.com/questions/27093612/… @cricket_007 因为我们在那个环境中已经有一个预先存在的系统。 【参考方案1】:

您想在 Dockerfile 中安装 python 2.7 吗?

FROM centos:6.8

RUN yum -y update
RUN yum install -y epel-release && yum groupinstall -y 'development tools'
RUN yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel xz-libs wget
RUN wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
RUN tar xvfJ Python-2.7.8.tar.xz
WORKDIR Python-2.7.8
RUN ./configure --prefix=/usr/local && make && make altinstall
RUN curl https://bootstrap.pypa.io/get-pip.py | python2.7

在这个容器内,版本 2.6.6 仍然是默认的,要使用 python 2.7.8,你必须明确指定 python2.7:

[root@79f3f51d0000 ~]# which python
/usr/bin/python
[root@79f3f51d0000 ~]# which python2.7
/usr/local/bin/python2.7
[root@79f3f51d0000 ~]# which pip2.7
/usr/local/bin/pip2.7

【讨论】:

make altinstall 是否应该已经运行了默认的 make 目标? 但是当我通过 pip 安装库时,它进入了 python2.6 版本的包文件。有没有办法安装python2.7版本包中的所有库? @Riturajkumar 只有 Python 2.7.9+ 预装了pip。 2.7.8需要单独安装pip @cricket_007 能否请您指定如何使用 2.7.8 单独安装 pip。因为我无法将 pip 安装到特定的 python 2.7 版本? @Riturajkumar 有一个专门用于此的页面。将python 替换为python2.7 pip.pypa.io/en/stable/installing

以上是关于Docker:如何在 Centos 6.8 docker 文件中设置和使用 python 2.7的主要内容,如果未能解决你的问题,请参考以下文章

2docker安装 on centos 6.8(64bit)

2docker安装 on centos 6.8(64bit)

CentOS 6.8内核版本升级

如何在 Centos 6.8 中更新 PHP?

如何在 CentOS 6.5 中安装 docker 1.9+?

CentOS 6.8 install Alien