Cha*_*ker 3 python ubuntu numpy docker tensorflow
我试图在我的 docker 容器中使用 python 3.5。我试过:
gcr.io/tensorflow/tensorflow:latest-devel
Run Code Online (Sandbox Code Playgroud)
和
gcr.io/tensorflow/tensorflow:latest-devel-py3
Run Code Online (Sandbox Code Playgroud)
但似乎两个图像都只有最高 3.4 的 python 版本。是否可以将 docker 容器作为基本映像,但也可以使用 python 3.5?或者更好的是,是否有可能让来自官方 tensorflow 图像的基础图像具有 python 3.5 本身?
我知道可以在 Dockerfile 中 pip 安装它(如tf 下载页面所示):
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
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不会让我得到最新的tensorflow 版本。如果可以 pip 安装最新的 TensorFlow 版本,为什么最新的基础映像不是获取最新的 TensorFlow 构建并将其放入 python3.5 的方法?
我已经明确地试图安装Python 3.5所建议这里然而,尽管蟒蛇3.5的安装是成功的,它打破的方式,我不能修复(如解释numpy的位置)。老实说,最好的解决方案是让 python 3.5 自动在图像上可用,但由于某种原因它不在那里。我对此做了一些研究,似乎安装 python 3.5 有点困难。这是为什么?缺少python 3.5的原因是因为tensorflow还是因为ubuntu?我的理想解决方案是不让我安装 python 3.5 并且它来了,但似乎这可能存在根本问题。它是什么?仅仅是因为还没有为tensorflow docker image和ubuntu安装它,还是我把一个简单的问题复杂化了?
作为另一种解决方案,我想也许安装 anaconda 或其他东西,然后再这样做,但我想将 tensorflow 作为我的基本图像,而且 anaconda 似乎建议将它们的图像作为基本图像。由于没有使用 apt-install 安装 anaconda 的简单方法,我仍在努力了解如何以编程方式安装 anaconda,以便可以有一个 tensorflow 图像作为基础,然后按照 Dockerfile 中的说明进行安装,某些版本的 anaconda .
现在有一个 git issue ine 官方 tensorflow 为此:
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
Run Code Online (Sandbox Code Playgroud)
我认为唯一需要注意的有趣的事情是我直接安装了 pip,因为 python3.5 的包/安装由于某种原因没有附带 pip。这导致我安装要使用的 python 包:
python3.5 -m pip install
Run Code Online (Sandbox Code Playgroud)
代替
pip3
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看更多详细信息:如何安装/修复在 python 3.4 上运行但在 3.5 中不起作用的失败 numpy 安装?
另请注意,我在以“官方方式”(即使用 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
Run Code Online (Sandbox Code Playgroud)
据我所知,这为我提供了带有最新 tensorflow 的 python3.5 - 就像他们的 docker 镜像,但使用的是 python3.5。
对我来说,提供的 docker 映像旨在“按原样”工作,并且可能提供的点点滴滴旨在传达开发人员更高的信心,即它们都可以正常工作。如果您需要进行重大更改,从头开始似乎更容易、更简单。
| 归档时间: |
|
| 查看次数: |
15965 次 |
| 最近记录: |