python - 可以在基于 TensorFlow docker 镜像的 docker 容器中使用 python 3.5 吗?

标签 python ubuntu numpy docker tensorflow

我试图在我的 docker 容器中使用 python 3.5。我试过:

gcr.io/tensorflow/tensorflow:latest-devel

gcr.io/tensorflow/tensorflow:latest-devel-py3

但是这两个图像似乎只有 python 版本高达 3.4。是否有可能将 docker 容器作为基础图像,但也有 python 3.5?或者更好的是,是否可以让来自官方 tensorflow 图像的基础图像本身具有 python 3.5?

我知道可以将其 pip 安装到 Dockerfile 中(如 tf download page 所示):

RUN export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl
pip3 install --upgrade $TF_BINARY_URL

然而,这似乎不会让我得到最新 tensorflow 版本。如果可以 pip 安装最新的 TensorFlow 版本,为什么最新的基础镜像不是获取最新的 TensorFlow 版本的方法并且在 python3.5 中有它?


我已经明确尝试按照 here 的建议安装 python 3.5然而,即使 python 3.5 安装成功,它也会以我无法修复的方式破坏 numpy(如 here 所解释)。老实说,最好的解决方案是让 python 3.5 在图像上自动可用,但由于某种原因它不存在。我对此做了一些研究,安装 python 3.5 似乎有点困难。这是为什么?缺少 python 3.5 的原因是因为 tensorflow 还是因为 ubuntu?我理想的解决方案是不让我安装 python 3.5,但它似乎有一个基本问题。它是什么?是不是tensorflow docker镜像和ubuntu都没有安装,还是我把一个简单的问题想复杂了?


作为另一种解决方案,我想也许可以安装 anaconda 或其他东西,然后执行此操作,但我想将 tensorflow 作为我的基础图像,而 anaconda 似乎建议将其图像作为基础。由于没有使用 apt-install 安装 anaconda 的简单方法,我仍在努力了解如何以编程方式安装 anaconda,以便可以有一个 tensorflow 图像作为基础,然后按照 Dockerfile 中的指示安装,某些版本的 anaconda .


现在在官方 tensorflow 中有一个 git 问题:

https://github.com/tensorflow/tensorflow/issues/7368


我提到可以直接在 DockerFile 中安装 TensorFlow,所以这是一个对我有用的示例 docker 文件:

RUN apt-get update && apt-get install -y build-essential git libjpeg-dev
RUN apt-get install -y vim

# get wget
RUN apt-get install wget

# install python 3.5
RUN add-apt-repository -y ppa:fkrull/deadsnakes
RUN apt-get -y update
RUN apt-get -y install python3.5

RUN wget https://bootstrap.pypa.io/get-pip.py
RUN python3.5 get-pip.py
RUN python3.5 -m pip install -U numpy

#Install some stuff my lib needs
RUN python3.5 -m pip install -U numpy
RUN python3.5 -m pip install -U namespaces
RUN python3.5 -m pip install -U scikit-learn
RUN python3.5 -m pip install -U scipy
RUN python3.5 -m pip install -U pdb
RUN python3.5 -m pip install -U keras

#
#export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl
RUN python3.5 -m pip install https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.1-cp35-cp35m-linux_x86_64.whl

我认为唯一需要注意的有趣的事情是我直接安装了 pip,因为 python3.5 的包/安装出于某种原因没有附带 pip。这导致我安装要使用的 python 包:

python3.5 -m pip install

代替

pip3

您可以在此处查看更多详细信息:How does one install/fix a failed numpy installation that works on python 3.4 but not in 3.5?

另请注意,我在以“官方方式”(即使用 apt-get 或类似方式)安装 python 时遇到问题,因此我求助于以下问题/答案的建议:https://askubuntu.com/questions/682869/how-do-i-install-newer-python-versions-using-apt-get

最佳答案

使用来自 DockerHub 的普通“ubuntu”docker 图像并依靠 pip 来执行它自己的依赖项解析(我想知道是否 这样做会导致你的 numpy 问题)我跑了:

apt-get install python3
apt-get install python3-pip 
pip install tensorflow

据我所知,这为我提供了带有最新 tensorflow 的 python3.5 - 就像他们的 docker 图像一样,但带有 python3.5。

对我来说,所提供的 docker 图像旨在“按原样”工作,并且所提供的点点滴滴可能旨在传达开发人员更高的信心,即它们可以一起正常工作。如果您需要进行重大更改,那么从头开始似乎更容易、更简单。

关于python - 可以在基于 TensorFlow docker 镜像的 docker 容器中使用 python 3.5 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42122826/

相关文章:

python - 如何在不重复的情况下从numpy数组中提取随机索引的N个元素?

python - 正在创建的 CSV 文件大于我在 python/pycharm 中的原始数据的大小?

python - 使用 MSN 协议(protocol)运行 twins.words 示例时出现异常

python - Pandas 转换 float 删除指数

mongodb - 我应该让mongodb以这种方式使用新硬盘吗?

node.js - 使用 Ubuntu 镜像在 VirtualBox 上安装 mocha

python - 我可以向量化这个Python代码吗?

python - 如何使用 ZeroMQ 通过 TCP 套接字发送 PNG 图像?

python - 如何从 npy.gz 文件中恢复一个 numpy 数组

postgresql - 在安装 libpqxx 的 ./configure 步骤中出错