如何用 Serverless 为 Python 云函数打包依赖

作者:

发布于: 2019-6-20

归档于:

标签:云函数Serverless

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

方法1: 官方方案

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

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

  1. 获得依赖列表
  2. 安装依赖到目录
  3. 生成zip
  4. 测试

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

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

文件内容:

复制代码
import PIL

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

文件内容:

安装requirements:

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

查看结果与本地测试:

压缩文档:

云函数中测试:

提示错误:

按照云函数要求写main_handler:

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

方法2: Pycharm快速安装

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

然后,建立文件index.py:

安装Pillow:

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

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

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

方法3: 自行复制法

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

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

感兴趣的同学可以通过 SCF 进行部署实践~

传送门:

欢迎访问:Serverless 中文网,您可以在 最佳实践 里体验更多关于 Serverless 应用的开发!