Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用pip将Python包安装到我的Divio Docker项目中?_Python_Docker_Pip_Divio - Fatal编程技术网

如何使用pip将Python包安装到我的Divio Docker项目中?

如何使用pip将Python包安装到我的Divio Docker项目中?,python,docker,pip,divio,Python,Docker,Pip,Divio,我习惯于使用pip将Python包安装到Django项目的虚拟环境中 当我在本地处理Divio Docker项目时,这不起作用 在Docker项目中安装Python包时,有两件事需要注意: 软件包必须安装在正确的环境中 如果您希望将来使用已安装的软件包,则需要以更持久的方式安装 下面的细节描述了如何使用Divio项目,但其原理与其他Docker安装类似 在正确的环境中安装 要在命令行上使用pip将Python包安装到Docker项目中,您需要在Docker环境内,即容器内使用pip 仅位于您

我习惯于使用
pip
将Python包安装到Django项目的虚拟环境中


当我在本地处理Divio Docker项目时,这不起作用

在Docker项目中安装Python包时,有两件事需要注意:

  • 软件包必须安装在正确的环境中
  • 如果您希望将来使用已安装的软件包,则需要以更持久的方式安装
下面的细节描述了如何使用Divio项目,但其原理与其他Docker安装类似

在正确的环境中安装 要在命令行上使用
pip
将Python包安装到Docker项目中,您需要在Docker环境内,即容器内使用
pip

仅位于您可以访问项目文件的目录中是不够的。在这方面,它类似于使用虚拟环境——您需要激活VirtualEnvironment。(否则,软件包将不会安装在虚拟环境中,而是安装在您自己的主机环境中。)

要激活虚拟环境,您需要在其上运行类似于
source-bin/activate
的操作

要在Divio
web
容器中安装软件包,请执行以下操作:

# start a bash prompt inside the project
docker-compose run --rm web bash

# install the package in the usual way
pip install rsa
rsa
现已安装并可供使用

更永久的安装 但是,到目前为止,该软件包将仅安装在该特定容器中并可用。一旦退出bashshell,容器就会消失。下次启动
web
容器时,您将不会在那里找到
rsa
包。这是因为容器每次都从其映像启动

为了使软件包保持安装状态,您需要将其包含在映像中

Divio项目包含一个
需求。在
文件中,列出将包含在映像中的Python包

在该文件末尾添加一行包含rsa的新行。然后运行:

docker-compose build web
这将重建Docker映像。下次使用(例如)
docker compose run--rm web bash
启动容器时,它将包含该Python包

(下稿)

注:我是Divio团队的成员。这个问题是我们通过支持渠道经常看到的问题