如何安装特定python包的部分内容?

时间:2021-05-17 20:20:07

标签: python docker pip dockerfile

我正在查看使用 acicobra 包的代码。 Acicobra 库是 670MB。 python 代码只使用了 acicobra 库中的几个函数。有没有办法只安装这个 acicobra 库中所需的模块而不是整个库?如果我安装整个库,我的 docker 镜像大小会因为这个巨大的库而膨胀。

root@1f5edb150a78:/usr/local/lib/python2.7/site-packages# ls -l |grep -v dist-info|du -sh *|sort -hr
659M    cobra

这些是python代码中对cobra的唯一引用

from cobra.mit.access import MoDirectory
from cobra.mit.session import LoginSession, LoginError
from cobra.mit.request import ClassQuery, DnQuery, QueryError

如您所见,代码仅引用了整个库中的 3 个模块。

我正在寻找避免安装整个库以限制 dockerimage 大小的方法

1 个答案:

答案 0 :(得分:0)

除非它依赖于您可以获取的其他较小的子库。

您可以查看代码,看看是否可以创建自己的较小的 Python 包。
但是在 90% 的情况下,您会沿着 dedecdency 链走下去,无论如何都需要完整的库。
如果用于商业用途,还要检查许可证。

这应该是源码正确的github:
https://github.com/datacenter/cobra