如何使用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包时,有两件事需要注意:
- 软件包必须安装在正确的环境中
- 如果您希望将来使用已安装的软件包,则需要以更持久的方式安装
pip
将Python包安装到Docker项目中,您需要在Docker环境内,即容器内使用pip
仅位于您可以访问项目文件的目录中是不够的。在这方面,它类似于使用虚拟环境——您需要激活VirtualEnvironment。(否则,软件包将不会安装在虚拟环境中,而是安装在您自己的主机环境中。)
要激活虚拟环境,您需要在其上运行类似于source-bin/activate
的操作
要在Divioweb
容器中安装软件包,请执行以下操作:
# 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团队的成员。这个问题是我们通过支持渠道经常看到的问题