如何从软件包中安装模块?

时间:2020-08-11 23:47:29

标签: python installation module

要安装python软件包,有没有办法只将我需要的特定模块(加上依赖项)安装到虚拟环境中?

例如,我在代码中导入以下内容

from statsmodels.tsa.arima_model import ARIMA

我只需要ARIMA(和依赖项),就不需要完整的statsmodels库。

我该怎么做?

理论上:

  • 我正在尝试压缩软件包并部署到AWS lambda。但是,我超出了50MB的文件大小限制。
  • 如果有一种方法可以仅从软件包中安装我需要的模块,则可以减小文件大小。

1 个答案:

答案 0 :(得分:0)

这是一种可怕的暴力手段。希望有人给您更好的答案!

假设您要安装的源是公开的,其许可允许这种使用,并且您愿意解决麻烦,我想您可以:

  • 复制源文件
  • 删除所需模块未使用的所有内容
  • 将该模块的源代码放入包装中,然后从那里进行接线。 (此答案建议a reasonable file structure用于供应商的软件)

或者,如果上述假设成立,但您不希望直接在软件内进行销售,则可能:

  • 复制源代码(例如,分叉仓库)
  • 删除所需模块未使用的所有内容,确保保留有效的python包
  • use pip或您环境的本机依赖性管理工具,以在虚拟环境中下载并安装软件包。

请注意,这两种方法都会使您面临多种风险,包括但不限于:

  • 打破模块:如果不小心造成了逻辑或安全缺陷,您的项目会怎样?
  • 货币损失:您打算如何使新的迷你包装保持最新状态?
  • 责任:供应商提供的软件许可是否允许这种使用?如果您修改的软件出了点问题,您是否得到了充分的保护?