Serverless 实践系列(二):为 Python 云函数打包依赖

阅读数:12790 2019 年 8 月 16 日 15:35

Serverless实践系列(二):为Python云函数打包依赖

在使用无服务器云函数 SCF 时通常会遇到导入第三方库的问题,很多开发者比较头疼是:应该如何打包进去?这里,推荐几个不错的方法。

方法 1: 官方方案

官方方案地址:
https://cloud.tencent.com/document/product/583/9702

在这个方案中,基本上有以下几个步骤:

  • 获得依赖列表
  • 安装依赖到目录
  • 生成 zip
  • 测试

以安装 Pillow 为例: 安装 pipreqs,可以使用 pip install pipreqs,这个是一个可以获取本文项目中依赖的工具

Serverless实践系列(二):为Python云函数打包依赖

建立文件夹,并且建立测试文件:

Serverless实践系列(二):为Python云函数打包依赖

文件内容:

复制代码
import PIL

获得需要依赖,生成文件:

Serverless实践系列(二):为Python云函数打包依赖

文件内容:

Serverless实践系列(二):为Python云函数打包依赖

安装 requirements:

复制代码
sudo pip3 install -r requirements.txt -t /home/dfounderliu/code/pillowtest

Serverless实践系列(二):为Python云函数打包依赖

查看结果与本地测试:

Serverless实践系列(二):为Python云函数打包依赖

压缩文档:

Serverless实践系列(二):为Python云函数打包依赖

云函数中测试:

Serverless实践系列(二):为Python云函数打包依赖

提示错误:

Serverless实践系列(二):为Python云函数打包依赖

按照云函数要求写 main_handler:

Serverless实践系列(二):为Python云函数打包依赖

至此,通过官方提供的方法安装完成。

方法 2: Pycharm 快速安装

首先,新建项目 pillowtest,这里要选择 virtualenv

Serverless实践系列(二):为Python云函数打包依赖

然后,建立文件 index.py
Serverless实践系列(二):为Python云函数打包依赖

安装 Pillow:

Serverless实践系列(二):为Python云函数打包依赖
Serverless实践系列(二):为Python云函数打包依赖

安装完成之后,可以看到:

Serverless实践系列(二):为Python云函数打包依赖

此时我们将安装过来的文档移动到 pillowtest 的目录下,然后将非 venv 目录进行压缩:

Serverless实践系列(二):为Python云函数打包依赖
Serverless实践系列(二):为Python云函数打包依赖

此时,我们将结果上传到云函数,并适当修改 index.py

Serverless实践系列(二):为Python云函数打包依赖
Serverless实践系列(二):为Python云函数打包依赖

方法 3: 自行复制法

这种方法是指,我们用了某个包,可以自己下载源码并且将其复制到目录下,具体方法可以参考上一篇实战:

Serverless 实践系列(一):如何通过 SCF 与自然语言处理为网站赋能

作者介绍:

刘宇,腾讯云 Serverless 团队后台研发工程师。毕业于浙江大学,先后参与腾讯云云函数产品研发、自动扩缩容、CLI 等模块建设以及社区相关工作。本文转载自微信公众号 ServerlessCloudNative(ID:ServerlessGo)

相关文章:

《Serverless 实践系列(一):如何通过 SCF 与自然语言处理为网站赋能》
《Serverless 实践系列(三):突破传统 OJ 瓶颈,“判题姬”接入云函数》
《Serverless 实践系列(四):网站监控脚本的实现》

评论

发布