如何从一个包中安装模块?

13 浏览
0 Comments

如何从一个包中安装模块?

安装Python包时,是否有一种方法可以仅将我需要的特定模块(以及依赖项)安装到虚拟环境中?

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

from statsmodels.tsa.arima_model import ARIMA

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

我应该如何实现这一目标?

原因:

  • 我正在尝试将包压缩并部署到AWS Lambda。然而,我超过了50MB的文件大小限制。
  • 如果有一种方法可以仅从包中安装我所需的模块,我可以减小文件大小。
0
0 Comments

如何从一个包中安装模块?

这个问题的出现是因为用户想知道如何从一个包中安装模块,并希望得到更好的解决方法。

解决方法如下:

1. 如果源代码是公开的,并且其许可证允许这种用法,并且你愿意处理一些麻烦,你可以采取以下步骤:

- 复制源代码

- 删除你所需模块中未使用的任何内容

- 将该模块的源代码放在你的包中,并从那里进行连接。(这个回答提出了一个合理的文件结构来供应用程序使用)

2. 或者,如果上述假设成立,但你不想直接在你的软件中添加依赖项,你可以采取以下步骤:

- 复制源代码(例如,fork这个仓库)

- 删除你所需模块中未使用的任何内容,确保留下一个可用的Python包

- 使用pip或你所用环境的本地依赖管理工具在虚拟环境中下载和安装你的包。

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

- 破坏模块:如果你意外地创建了一个逻辑或安全漏洞,你的项目会发生什么?

- 丧失时效性:你打算如何保持你的新的小包的最新状态?

- 责任:被供应的软件的许可证是否允许这种用法?如果你修改的软件存在问题,你是否有足够的保护?

谢谢你的建议!非常实用,概述了所有的风险。

谢谢Yi。如果你觉得这个答案有用,请投票支持,并考虑接受它作为最佳的正确/可行答案。

我很愿意这样做,而且我已经做了!不幸的是,我的声望还不够,所以它不会显示出来。

完全不必接受这个答案,但作为提问者,你有权选择接受一个答案,不管你的声望如何。这将为你增加2个声望,如果你得到更好的答案,你可以稍后更改接受的答案。点击这里查看如何操作:[如何接受答案的工作原理](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)

0