我正在按照本教程为Flask应用程序创建Docker映像。 该应用程序取决于Torch / PyTorch。 因此,我的requirements.txt文件如下所示。

flask
flask-cors
pytorch
torchvision
pandas

然后,我的Dockerfile如下所示。

FROM ubuntu:latest
LABEL My Company "info@mycompany.com"
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
WORKDIR /app
RUN pip install -vvv --no-cache-dir -r requirements.txt
ENTRYPOINT ["python3"]
CMD ["app.py"]

当我输入命令docker build -t flask-sample-one:latest . 我在Mac上收到以下错误消息(当pip尝试安装割炬时发生)。

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 821, in unpack_url
    hashes=hashes
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 659, in unpack_http_url
    hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 882, in _download_http_url
    _download_url(resp, link, content_file, hashes)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 603, in _download_url
    hashes.check_against_chunks(downloaded_chunks)
  File "/usr/lib/python2.7/dist-packages/pip/utils/hashes.py", line 46, in check_against_chunks
    for chunk in chunks:
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 571, in written_chunks
    for chunk in chunks:
  File "/usr/lib/python2.7/dist-packages/pip/utils/ui.py", line 139, in iter
    for x in it:
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 560, in resp_read
    decode_content=False):
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/response.py", line 436, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/response.py", line 384, in read
    data = self._fp.read(amt)
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/filewrapper.py", line 63, in read
    self._close()
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/filewrapper.py", line 50, in _close
    self.__callback(self.__buf.getvalue())
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/controller.py", line 275, in cache_response
    self.serializer.dumps(request, response, body=body),
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/serialize.py", line 55, in dumps
    "body": _b64_encode_bytes(body),
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/serialize.py", line 12, in _b64_encode_bytes
    return base64.b64encode(b).decode("ascii")
MemoryError
The command '/bin/sh -c pip install -vvv -r requirements.txt' returned a non-zero code: 2

我不确定MemoryError来自何处。 我试图在具有16 GB RAM的Macbook Pro上构建docker映像。 关于正在发生的事情或如何使用Python创建docker映像的任何想法吗?

在AWS EC2实例上,出现以下错误。

Running setup.py install for pytorch: started
    Running command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-SeBh33/pytorch/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-5jxyuS-record/install-record.txt --single-version-externally-managed --compile
    Traceback (most recent call last):
      File "", line 1, in 
      File "/tmp/pip-build-SeBh33/pytorch/setup.py", line 13, in 
        raise Exception(message)
    Exception: You should install pytorch from http://pytorch.org
    Running setup.py install for pytorch: finished with status 'error'
Cleaning up...
  Removing source in /tmp/pip-build-SeBh33/pytorch
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-SeBh33/pytorch/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-5jxyuS-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-SeBh33/pytorch/
Exception information:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 360, in run
    prefix=options.prefix_path,
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
    **kwargs
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 878, in install
    spinner=spinner,
  File "/usr/lib/python2.7/dist-packages/pip/utils/__init__.py", line 725, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-SeBh33/pytorch/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-5jxyuS-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-SeBh33/pytorch/
The command '/bin/sh -c pip install -vvv --no-cache-dir -r requirements.txt' returned a non-zero code: 1

有什么想法吗? 我只是在尝试构建具有少量依赖关系的docker映像,以便可以从flask应用程序提供PyTorch模型。 我不确定是否有关于此操作的教程(目前尚未找到)。

#1楼 票数:1 已采纳

如果有人感兴趣,我可以按如下方法将PyTorch安装到PyTorch容器中。

我修改了requirements.txt ,使其如下所示。

flask
flask-cors
pandas

然后,我将Dockerfile修改为如下所示。 这很奇怪,并且不遵循使用pip安装Python软件包的常规方法,但是可以使用。 请注意,我必须先安装Python 3,再安装PyTorch wheel,最后再安装torchvision的pip安装。

FROM ubuntu:latest
LABEL My Company "info@mycompany.com"
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
RUN apt-get install -y python3.6
RUN apt-get install -y python3-pip
COPY . /app
WORKDIR /app
RUN pip3 install -vvv --no-cache-dir -r requirements.txt
RUN pip3 install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-linux_x86_64.whl
RUN pip3 install torchvision
ENTRYPOINT ["python3"]
CMD ["app.py"]

  ask by Jane Wayne translate from so

未解决问题?本站智能推荐:

1回复

无法在Docker上运行Flask(ModuleNotFoundError)

我一直试图在Docker上运行我的Python API(使用Flask),但是一直遇到这个问题: ModuleNotFoundError: No module named 'flask' 在具有Docker 19.03.1版本的Mac OS X(10.14.5)上运行此版本,版本74
2回复

尝试为 Flask 应用程序构建 docker 时出错

我正在尝试构建一个 docker 来运行一个 Flask 应用程序。 我以前从未这样做过。 我有在本地工作的烧瓶应用程序。 这是我的方法: 我的项目目录结构如下所示: 我可以通过运行python flaskapp.py来启动烧瓶应用程序,它在我的浏览器(本地)中运行。 我想创建一个 Dock
1回复

Docker:通过 Gunicorn 运行 Flask 应用程序 - 工人超时? 表现不佳?

我正在尝试创建一个用 Python Flask 编写的新应用程序,由 gunicorn 运行然后 dockerised。 我遇到的问题是 docker 容器内的性能非常差、不一致,我最终得到了响应,但我不明白为什么性能下降。 有时我在日志中看到[CRITICAL] WORKER TIMEOUT (
1回复

将现有的Flask应用程序放入Docker容器-pip导入问题

我开始玩docker,我决定尝试并“ dockerize”我正在构建的Flask应用。 但是当我运行docker build -t test . 我得到了例外,下面列出。 运行此命令时,我激活了venv,并且位于如下所示的目录中: 在完成本教程和“重置磁盘映像”之后,我还清除了缓存
1回复

为什么 pytorch Docker 镜像没有自带 Torch?

我正在尝试构建一个 docker 容器,它使我能够运行需要 python torch 模块的代码。 我选择从pytorch/pytorch:latest基础镜像开始我的镜像并手动添加一些必需的模块。 到远程服务器的构建、推送和拉取成功(至少没有错误消息)。 目前我的 Dockerfile 看起来
1回复

在 Rapids.ai docker 容器中持久安装 pip

这可能是一个非常愚蠢的问题,但必须从某个地方开始。 我正在使用 NVDIA 的 Rapids.ai gpu 增强型 docker 容器,但这(可能是设计使然)没有随 pytorch 一起提供。 现在,当然,我可以每次都执行pip install torch torch-ignite ,但这既烦人又消
1回复

没有 CUDA 的 PyTorch torch_sparse 安装

我是 PyTorch 的新手,我遇到了一个问题,即我无法正确安装我的 torch_sparse 模块。 一般来说,我想使用模块torch_geometric - 我已经安装了这个。 但是,在程序执行期间,我不断收到错误 ModuleNotFoundError: No module named 'to
9回复

安装 PyTorch 1.4 的问题 - “找不到与 torch===1.4.0 匹配的发行版”

使用pytorch.org上的安装指南了解如何安装它,我使用的命令是 但它出现了这个错误; 错误:找不到满足要求的版本 torch===1.4.0(来自版本:0.1.2、0.1.2.post1、0.1.2.post2) 错误:没有找到与 torch===1.4.0 匹配的分布 这甚至