当前位置: 首页 > 知识库问答 >
问题:

如何将Python库添加到Docker image

申屠泉
2023-03-14

今天我开始使用Docker。所以请耐心等待。我甚至不确定标题是否有意义。我刚刚使用Docker安装了Tensorflow并想运行一个脚本。但是,我得到了以下错误,说没有安装Matplotlib。

Traceback (most recent call last):
File "tf_mlp_v3.py", line 3, in <module>
import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'

我使用以下命令安装Tensorflow

docker pull tensorflow/tensorflow:latest-gpu-jupyter

我现在如何将其他Python库(例如Matplotlib)添加到该图像中?

共有3个答案

麹繁
2023-03-14

有多种选择:

>

  • 进入容器并安装依赖项(请注意,此更改将在重新创建容器时丢失):

    docker exec <your-container-id> /bin/bash
    

    这应该会开启一场互动狂欢。然后安装依赖项(pip或conda)。

    另一种选择是在构建时(图像)添加它。这是将指令RUN添加到Dockerfile中

    所有依赖项都使用python默认工具(即:pip、conda)安装

  • 白阳煦
    2023-03-14

    拉取图像后将其添加到您的Dockerfile:

    RUN python -m pip install matplotlib
    
    屠泰平
    2023-03-14

    要自定义图像,您通常希望使用现有图像作为基础创建一个新图像。在Docker中,当现有图像不能完全满足您的要求时,创建自定义图像是非常常见的。通过将您的图像基于公共图像,您可以添加自己的自定义项,而无需重复(甚至不知道)基本图像的作用。

    >

  • 向新Dockerfile添加必要的步骤。

    FROM tensorflow/tensorflow:latest-gpu-jupyter
    
    RUN <extra install steps>
    COPY <extra files>
    

    运行和复制是您可能使用的指令示例<代码>运行将运行您选择的命令,例如运行pip install matplotlib<代码>复制用于将机器中的新文件添加到映像中,例如配置文件。

    构建并标记新图像。给它起一个你选择的新名字。我将其称为我的定制tensorflow,但你可以随意命名。

    假设docker文件在当前目录中,运行docker build:

    $ docker build -t my-customized-tensorflow .
    

    现在,您可以像使用任何其他图像一样使用我的自定义tensorflow。

    $ docker run my-customized-tensorflow
    

  •  类似资料:
    • 我想使用jar库http://jcodec.org/正在处理。我知道有很多关于库的教程,但没有一个足够清晰,让我能够理解。我已经拖放了jcodec-0.1.5。jar创建了一个名为“code”的文件夹,其中包含文件jcodec-0.1.5。罐子在里面,但是当我想用的时候 我还在 “未定义构造函数FrameGrab(文件)。” 我需要进口什么东西吗?如果是,在“导入”后我必须键入什么?非常感谢您的帮

    • 问题内容: 从: http://docs.python.org/py3k/library/datetime.html#timedelta- objects timedelta对象代表持续时间,即两个日期或时间之间的差。 那么,为什么我会出错: 问题答案: 对象不支持除了用秒。 虽然有一个自然的定义,时钟算术。您可以这样计算: 将datetime.time提升到一个对象,然后添加增量,然后将结果回落

    • 问题内容: 有人可以告诉我如何在最新版本的Python上安装sqlite3模块吗?我正在使用Macbook,并在命令行上尝试了: 但是会弹出一个错误。 问题答案: 您不需要安装模块。它包含在标准库中(自Python 2.5起)。

    • 问题内容: 如何将库项目(例如Sherlock ABS)添加到Android Studio? (不是旧的基于ADT Eclipse的捆绑包,而是新的Android Studio。) 问题答案: Android Studio 1.0更新 自从发布Android Studio 1.0(以及许多版本在v1.0到我上次回答之时的第一个版本)以来,某些事情已经发生了变化。 我的描述着重于通过Gradle文件

    • 问题内容: 写入SSL套接字时出现以下异常 似乎目标服务器的证书不受信任。我在Windows 7机器jdk7和tomcat7上测试了我的实现,没有问题。在带有openJDK 6和tomcat7的ubuntu 10 LTS上引发了异常。我得到了套接字目标服务器的sha1和md5指纹。我要流式传输的服务器的证书不是我的ubuntu服务器上的受托人吗?我可以将指纹保存到tomcats密钥库中吗?如果是这

    • 问题内容: 我的文件带有证书链-certificate.cer: 我需要将此证书链添加到密钥库。 我做的事: 结果,我在密钥库中只有1个证书。 但是应该有3. 什么地方可能出问题? 解决方案: CA向我发送了PKCS#7格式的证书。 我将它们存储在certificate.p7b文件中,然后通过以下命令将它们成功添加到密钥库中: 问题答案: 从keytool管理员中-如果以PKCS#7格式输入,它将