【发布时间】:2019-07-09 14:14:45
【问题描述】:
如何减小 python 虚拟环境的大小?
这可能是:
- 正在从
site_packages中删除包,但可以删除哪个包? - 删除
*.pyc文件 - 检查已使用的文件,如下所述:https://medium.com/@mojodna/slimming-down-lambda-deployment-zips-b3f6083a1dff
- ...
还有什么可以删除或剥离的?还是有其他方法?
用例是将virtualenv 上传到空间有限的服务器(例如AWS Lambda 函数,限制为 512 MB)
【问题讨论】:
-
事实上你不使用一个包并不意味着它没有被你的另一个包使用......至于检测陈旧的包,你可能想要看看 pipdeptree (pypi.org/project/pipdeptree)
-
如果你想接收 Lambda 包 zip,你可以使用 AWS Lambda 层。 AWS Lambda 层 您可以配置您的 Lambda 函数,以层的形式引入额外的代码和内容。层是包含库、自定义运行时或其他依赖项的 ZIP 存档。使用层,您可以在函数中使用库,而无需将它们包含在部署包中。层可以让您的部署包保持较小,从而使开发更容易。您可以避免在使用函数代码安装和打包依赖项时可能发生的错误。
-
您是否从您的 zip 中删除了 boto3、botocore 等?它们已经在 AWS Lambdas 中可用。
-
@giaco 我们正在使用 spacy,它与 mlflow、scikit-learn 等结合使用非常大。在 Spacy 中,可能可以删除大约 240 MB 的“lang”,但这会很好知道哪些是进一步的可能性。
-
@ReneB 这是一个关于减少包空间使用的很酷的博客:towardsdatascience.com/…
标签: python aws-lambda virtualenv