无服务器框架-Python和Requirements.txt-删除不必要的软件包

问题描述 投票:0回答:1

我正在使用serverless-python-requirements插件来部署aws lambda;然后我使用pip Frozen> requirements.txt创建了requirements.txt。但是,requirements.txt可能包含超出所需的软件包(用于部署)。

我的问题是:serverless-python-requirements插件能否删除我的lambda函数未使用的不必要的软件包(仅保留直接或间接(依赖项)所需的软件包)?

python aws-lambda aws-serverless
1个回答
0
投票

这里编写的所有内容都适用于任何项目配置(是否使用virtualenv)。

此操作的正确策略是拥有多个需求文件。

假设您有一组适用于所有环境的默认库。

您应该放入common.txt文件。

假设您还有dev的两个配置,其中包含调试库,api文档和导航等另一个用于tests,具有测试框架的覆盖范围和类似内容。

因此,在这种情况下,您应该具有:

dev.txttest.txt

所以现在我们有3个环境(prod,dev,test)的3个文件。 dev.txt和`text.txt的第一行应为:

-r common.txt

现在我们只能安装对该环境重要的需求。

[this blog中有一个很好的教程,关于如何在django中做到这一点(但可以在任何框架中应用)>

这是我对烧瓶应用程序的最终解决方案:

common.txt

appdirs==1.4.3
CacheControl==0.12.6
certifi==2019.11.28
chardet==3.0.4
Click==7.0
colorama==0.4.3
contextlib2==0.6.0
distlib==0.3.0
distro==1.4.0
Flask==1.1.2
html5lib==1.0.1
idna==2.8
ipaddr==2.2.0
itsdangerous==1.1.0
Jinja2==2.10.1
lockfile==0.12.2
MarkupSafe==1.1.1
msgpack==0.6.2
packaging==20.3
pep517==0.8.2
progress==1.5
pyparsing==2.4.6
python-dotenv==0.13.0
pytoml==0.1.21
requests==2.22.0
retrying==1.3.3
six==1.14.0
urllib3==1.25.8
webencodings==0.5.1
Werkzeug==0.15.5

dev.txt

-r common.txt
black==19.10b0

也要安装软件包,您应该使用以下命令:

pip install -r dev.txt #will install in order common.txt and dev.txt dependencies.

如果不清楚,请通知我。

© www.soinside.com 2019 - 2024. All rights reserved.