【问题标题】:How to import python module from docker如何从docker导入python模块
【发布时间】:2016-08-23 01:57:56
【问题描述】:

我做了一个docker镜像,包含nginx、uwsgi和一些python模块,使用volumes out docker开发代码。

那么编码的时候应该如何使用docker的python环境呢?

【问题讨论】:

  • 请详细说明您要做什么!
  • 你想在 docker 容器中编码?
  • @pigletfly 不,我想在 docker 外部编码,但在 docker 内部导入一些模块。
  • 查看新编辑。我认为这个问题可以解决的大方向。
  • @Mil0R3 ,嗨,您是否设法将 docker 容器中的模块导入到外部代码中?

标签: python django docker


【解决方案1】:

我不确定您要做什么。但这里有一些提示,可能会对您有所帮助。

  1. Python 库,用于从 python 中使用 docker
  2. 可以启动容器的python控制台 docker run -ti myimage python
  3. 您还可以连接volumes 来存储您的源代码,然后在容器的环境中运行此代码

新想法

在 python 中导入模块意味着在你的PYTHONPATH 中有模块的文件夹。所以基本上你可能需要用sshfs之类的东西将你的docker挂载到某个文件夹,然后将此文件夹添加到你的PYTHONPATH。之后你可以做from {docker_module} ...

【讨论】:

  • 我已经这样做了,我的问题是什么:例如 django 模块现在在 docker 内部,在 docker 外部(卷)我可以编写代码,当我输入 from django. 时,我该如何获取代码提示?
  • @Milor8 你为什么想要那个?我不明白这样做的原因。
  • @SardorbekImomaliev 我想我知道他的意思,因为我正面临与caffe 类似的问题。由于它的 python 包装器在 Ubuntu 以外的系统上的安装过程有点不简单,我考虑使用 ubuntu docker container with a caffe python module installation。我的问题,也许是 OP 的问题,是如何导入安装在容器中的 python 模块?
  • @fabda01,嗨,您是否设法将 docker 容器中的模块导入外部代码?
【解决方案2】:

不确定这是否是您所要求的,但如果您在 Docker 映像中有 Python 库并且您想将它们附加到已经存在的 Pipfile,您可以从 Docker 容器中复制 requirements.txt 文件然后使用pipenv 安装它们。


# In terminal session 1 run the container with the default shell in interactive mode. This way the container stays alive and we can copy the file from the container to the host
docker run -it --rm $USER/$IMAGE_NAME:1.0.0.XXXXX sh

# In terminal session 2
docker cp $CONTAINER_ID:/requirements.txt ./

# This will add the requirements from the text file into the Pipfile
pipenv install -r requirement.txt

# Sometimes requirements will get corrupted
pipenv clean

如果使用 Visual Studio Code,请重新加载窗口以刷新 Python 解释器中的依赖项。

【讨论】:

    猜你喜欢
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多