2024-04-29 11:55:24 发布
网友
我习惯于使用pip将Python包安装到Django项目的虚拟环境中。在
pip
当我在本地使用Divio Docker项目时,这不起作用。在
在将Python包安装到Docker项目中时,需要注意两件事:
下面的细节描述了使用Divio项目,但原理与其他Docker安装类似。在
要在命令行上使用pip将Python包安装到Dockerised项目中,需要在Docker环境(即容器内部)中使用pip。在
仅在您可以访问项目文件的目录中是不够的。在这方面,它类似于使用虚拟环境—您需要激活virtualenv。(否则,您的软件包将不会安装在虚拟环境中,而是安装在您自己的主机环境中。)
要激活一个虚拟环境,您需要在其上运行source bin/activate之类的东西。在
source bin/activate
要在Divioweb容器中安装包,请执行以下操作:
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现已安装并可使用。在
rsa
不过,到目前为止,该软件包只会安装在特定的容器中,并且在中可用。一旦退出bashshell,容器就会消失。下一次启动web容器时,将找不到rsa包。这是因为容器每次都是从它的图像启动的。在
为了保持软件包的安装状态,您需要将其包含在映像中。在
Divio项目包含一个requirements.in文件,其中列出了将包含在映像中的Python包。在
requirements.in
在该文件的末尾添加一个包含rsa的新行。然后运行:
这将重建Docker映像。下次使用docker-compose run rm web bash启动容器时,它将包含该Python包。在
docker-compose run rm web bash
(即Divio Developer Handbook has some additional guidance on using pip。)
注:我是Divio团队的成员。这个问题是我们经常通过我们的支持渠道看到的。在
在将Python包安装到Docker项目中时,需要注意两件事:
下面的细节描述了使用Divio项目,但原理与其他Docker安装类似。在
在正确的环境中安装
要在命令行上使用
pip
将Python包安装到Dockerised项目中,需要在Docker环境(即容器内部)中使用pip
。在仅在您可以访问项目文件的目录中是不够的。在这方面,它类似于使用虚拟环境—您需要激活virtualenv。(否则,您的软件包将不会安装在虚拟环境中,而是安装在您自己的主机环境中。)
要激活一个虚拟环境,您需要在其上运行
source bin/activate
之类的东西。在要在Divio
web
容器中安装包,请执行以下操作:rsa
现已安装并可使用。在更永久性的安装
不过,到目前为止,该软件包只会安装在特定的容器中,并且在中可用。一旦退出bashshell,容器就会消失。下一次启动
web
容器时,将找不到rsa
包。这是因为容器每次都是从它的图像启动的。在为了保持软件包的安装状态,您需要将其包含在映像中。在
Divio项目包含一个
requirements.in
文件,其中列出了将包含在映像中的Python包。在在该文件的末尾添加一个包含
^{pr2}$rsa
的新行。然后运行:这将重建Docker映像。下次使用
docker-compose run rm web bash
启动容器时,它将包含该Python包。在(即Divio Developer Handbook has some additional guidance on using pip。)
注:我是Divio团队的成员。这个问题是我们经常通过我们的支持渠道看到的。在
相关问题 更多 >
编程相关推荐