python - 在 docker 中安装 pip

标签 python docker pip

我无法在 Docker 中安装 pip。

这是我的 Dockerfile:

FROM ubuntu:14.04

# Install dependencies
RUN apt-get update -y
RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip

构建时,我得到:

Sending build context to Docker daemon 109.6 kB
Step 1 : FROM ubuntu:14.04
 ---> b549a9959a66
Step 2 : RUN apt-get update -y
 ---> Using cache
 ---> 84577471562c
Step 3 : RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip
 ---> Running in 49252a6d0eb1
Reading package lists...
Building dependency tree...
Reading state information...
python3.4 is already the newest version.
The following extra packages will be installed:
  apache2-bin apache2-data binutils build-essential ca-certificates cpp
  cpp-4.8 dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git-man krb5-locales
  libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
  libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libasan0
  libasn1-8-heimdal libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libcurl3
  libcurl3-gnutls libdpkg-perl libedit2 liberror-perl libfakeroot
  libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libgssapi-krb5-2
  libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal
  libheimntlm0-heimdal libhx509-5-heimdal libidn11 libisl10 libitm1
  libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0
  libldap-2.4-2 libmcrypt4 libmpc3 libmpfr4 libmysqlclient18 libpython-stdlib
  libpython2.7-minimal libpython2.7-stdlib libquadmath0 libroken18-heimdal
  librtmp0 libsasl2-2 libsasl2-modules libsasl2-modules-db libstdc++-4.8-dev
  libtimedate-perl libtsan0 libwind0-heimdal libx11-6 libx11-data libxau6
  libxcb1 libxdmcp6 libxext6 libxml2 libxmuu1 linux-libc-dev lsof make
  manpages manpages-dev mysql-common openssh-client openssl patch php5-cli
  php5-common php5-json php5-readline psmisc python python-chardet
  python-chardet-whl python-colorama python-colorama-whl python-distlib
  python-distlib-whl python-html5lib python-html5lib-whl python-minimal
  python-pip-whl python-pkg-resources python-requests python-requests-whl
  python-setuptools python-setuptools-whl python-six python-six-whl
  python-urllib3 python-urllib3-whl python-wheel python2.7 python2.7-minimal
  python3-pkg-resources rsync sgml-base ssl-cert xauth xml-core xz-utils
Suggested packages:
  www-browser apache2-doc apache2-suexec-pristine apache2-suexec-custom ufw
  apache2-utils binutils-doc cpp-doc gcc-4.8-locales debian-keyring
  g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg gcc-multilib
  autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.8-multilib
  libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan0-dbg
  libtsan0-dbg libquadmath0-dbg gettext-base git-daemon-run
  git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch
  git-bzr git-cvs git-mediawiki git-svn php-pear glibc-doc krb5-doc krb5-user
  libmcrypt-dev mcrypt libsasl2-modules-otp libsasl2-modules-ldap
  libsasl2-modules-sql libsasl2-modules-gssapi-mit
  libsasl2-modules-gssapi-heimdal libstdc++-4.8-doc make-doc man-browser
  ssh-askpass libpam-ssh keychain monkeysphere ed diffutils-doc
  php5-user-cache python-doc python-tk python-genshi python-lxml
  python-distribute python-distribute-doc python2.7-doc binfmt-support
  python3-setuptools openssh-server sgml-base-doc openssl-blacklist debhelper
Recommended packages:
  ssh-client python-dev-all
The following NEW packages will be installed:
  apache2 apache2-bin apache2-data binutils build-essential ca-certificates
  cpp cpp-4.8 curl dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git git-man
  krb5-locales libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libapache2-mod-php5 libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap libasan0 libasn1-8-heimdal
  libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libcurl3 libcurl3-gnutls
  libdpkg-perl libedit2 liberror-perl libfakeroot libfile-fcntllock-perl
  libgcc-4.8-dev libgmp10 libgomp1 libgssapi-krb5-2 libgssapi3-heimdal
  libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal
  libhx509-5-heimdal libidn11 libisl10 libitm1 libk5crypto3 libkeyutils1
  libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libmcrypt4
  libmpc3 libmpfr4 libmysqlclient18 libpython-stdlib libpython2.7-minimal
  libpython2.7-stdlib libquadmath0 libroken18-heimdal librtmp0 libsasl2-2
  libsasl2-modules libsasl2-modules-db libstdc++-4.8-dev libtimedate-perl
  libtsan0 libwind0-heimdal libx11-6 libx11-data libxau6 libxcb1 libxdmcp6
  libxext6 libxml2 libxmuu1 linux-libc-dev lsof make manpages manpages-dev
  mysql-common openssh-client openssl patch php5 php5-cli php5-common
  php5-json php5-mcrypt php5-mysql php5-readline psmisc python python-chardet
  python-chardet-whl python-colorama python-colorama-whl python-distlib
  python-distlib-whl python-html5lib python-html5lib-whl python-minimal
  python-pip python-pip-whl python-pkg-resources python-requests
  python-requests-whl python-setuptools python-setuptools-whl python-six
  python-six-whl python-urllib3 python-urllib3-whl python-wheel python2.7
  python2.7-minimal python3-pkg-resources rsync sgml-base ssl-cert xauth
  xml-core xz-utils
0 upgraded, 130 newly installed, 0 to remove and 4 not upgraded.
Need to get 61.9 MB of archives.
After this operation, 213 MB of additional disk space will be used.
Err http://archive.ubuntu.com/ubuntu/ trusty-updates/main libroken18-heimdal amd64 1.6~git20131207+dfsg-1ubuntu1.1
  Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com/ubuntu/ trusty-updates/main libasn1-8-heimdal amd64 1.6~git20131207+dfsg-1ubuntu1.1
  Could not resolve 'archive.ubuntu.com'

.
.
.

Err http://archive.ubuntu.com/ubuntu/ trusty-security/main python2.7 amd64 2.7.6-8ubuntu0.2
  Could not resolve 'archive.ubuntu.com'
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/h/heimdal/libroken18-heimdal_1.6~git20131207+dfsg-1ubuntu1.1_amd64.deb  Could not resolve 'archive.ubuntu.com'

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/h/heimdal/libasn1-8-heimdal_1.6~git20131207+dfsg-1ubuntu1.1_amd64.deb  Could not resolve 'archive.ubuntu.com'

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb5support0_1.12+dfsg-2ubuntu5.2_amd64.deb  Could not resolve 'archive.ubuntu.com'

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/s/ssl-cert/ssl-cert_1.0.33_all.deb  Could not resolve 'archive.ubuntu.com'

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
The command '/bin/sh -c apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip' returned a non-zero code: 100

阅读 this answer 后,我尝试添加以下行 RUN "sh""-c""echo nameserver 8.8.8.8 >>/etc/resolv.conf" - 这次的错误是:

...
...
Reading state information...
E: Unable to locate package php5-mcrypt
E: Unable to locate package python-pip
The command '/bin/sh -c apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip' returned a non-zero code: 100

我做错了什么?我看到有人声称我应该尝试不同版本的 Ubuntu,但切换到 13.1 并没有改变任何东西。

最佳答案

T. Arboreus's answer可能会解决解决“archive.ubuntu.com”的问题,我认为你得到的最后一个错误是它不知道包 php5-mcryptpython-pip 。 尽管如此,您使用这两个软件包减少的 Dockerfile 对我有用(使用 Debian 8.4 和 Docker 1.11.0),但我不太确定是否会出现这种情况,因为我的主机系统与您的不同。

FROM ubuntu:14.04

# Install dependencies
RUN apt-get update && apt-get install -y \
    php5-mcrypt \
    python-pip

但是,根据 this answer在使用 Python 3.x 时,您应该考虑安装 python3-pip 包而不是 python-pip 包。

此外,为了使 php5-mcrypt 包安装工作正常,您可能需要添加 Universe 存储库,如图所示 right here .我遇到了 Ubuntu Docker 镜像中缺少 add-apt-repository 命令的问题,因此我首先安装了包 software-properties-common 以使该命令可用。

拆分语句并将apt-get updateapt-get install放在一个RUN命令中也是推荐的here .

哦,顺便说一句,您实际上不需要 apt-get update 中的 -y 标志,因为没有什么需要自动确认。

最后:

FROM ubuntu:14.04

# Install dependencies
RUN apt-get update && apt-get install -y \
    software-properties-common
RUN add-apt-repository universe
RUN apt-get update && apt-get install -y \
    apache2 \
    curl \
    git \
    libapache2-mod-php5 \
    php5 \
    php5-mcrypt \
    php5-mysql \
    python3.4 \
    python3-pip

备注:使用的版本(例如 Ubuntu)将来可能会过时。

关于python - 在 docker 中安装 pip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611052/

相关文章:

python - 如何让敌人跟随pygame中的玩家?

docker - 在docker pull之前如何从不安全的注册表检查图像的压缩大小?

ssh - Docker+SSH,如何定期将 docker 镜像从一台主机安全地传输到另一台主机?

python - 导入错误 : cannot import name '_BACKCOMPAT_MAGIC_NUMBER'

python - 使用 get-pip.py 时 pip 安装在哪里?

python - 在 tkinter 中,当 Canvas 用作另一个小部件的主版时, Canvas 大小设置似乎停止工作。有办法解决这个问题吗?

python - 如何在 TensorFlow 1.13 中检查 TFRecord 文件的结构?

c# - 分类库

docker - 不允许使用 docker + systemctl 操作 systemctl

python - 安装机器人框架时出错