10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

  • 2019-08-16
  • 本文字数:764 字

    阅读完需:约 3 分钟

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

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

方法 1: 官方方案

官方方案地址:


https://cloud.tencent.com/document/product/583/9702


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


  • 获得依赖列表

  • 安装依赖到目录

  • 生成 zip

  • 测试


以安装 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与自然语言处理为网站赋能


作者介绍:


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


相关文章:


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


《Serverless 实践系列(三):突破传统 OJ 瓶颈,“判题姬”接入云函数》


《Serverless 实践系列(四):网站监控脚本的实现》


2019-08-16 15:3514317

评论

发布
暂无评论
发现更多内容

原来,GitHub标星90K+的Leetcode刷题手册长这样

Java架构师迁哥

Redis不是一直号称单线程效率也很高吗,为什么又采用多线程了?

Linux服务器开发

redis 后端 多线程 Linux服务器开发 网络io

亚马逊云开发者 Meetup 又双叒叕来了,您报名了吗?

亚马逊云科技 (Amazon Web Services)

开源数据库

网络攻防学习笔记 Day26

穿过生命散发芬芳

5月日更 网络攻防

出于信仰,我去考了一个证

大可不加冰

云计算 IaC Terraform HashiCorp

Python3 Note 浮点类型误差问题

awen

Python 浮点型 decimal

悟透前端:加深Javascript变量函数声明提升理解

devpoint

变量声明

达利欧:我持有一些比特币,美元重回1971年,现金就是垃圾

CECBC

用Terraform申请Letsencrypt证书

大可不加冰

云计算 证书 IaC Terraform HashiCorp

另一种总结的方式

Nydia

学习

中台反思:云原生下API网关的选择

孤岛旭日

网关 api 网关 平台 技术中台

helm-kubernetes的包管理器

片风

云原生 Helm 包管理工具

数字人民币与区块链的区别与联系

CECBC

面向WEB开发的Docker(四):启动MySQL数据库

devpoint

Docker

如何入门数据分析?

数据社

大数据 数据分析 5月日更

这可能是中文互联网第一本系统性讲解Terraform的入门教程

大可不加冰

云计算 IaC Terraform HashiCorp 不可变基础设施

5.29 相约杭州!云原生 Meetup 第二期杭州站报名开启!

青云技术社区

云原生

如何通过别名扩展Git

kenny

bash git git扩展

Flink的流数据SQL

五分钟学大数据

flink 5月日更

5分钟速读之Rust权威指南(十)

wzx

rust

人生算法:重新启动的精神装置

石云升

读书笔记 思维模型 5月日更

安全专栏加餐

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

Terraform中使用prevent_destroy搭配override文件防止误删资源

大可不加冰

云计算 基础设施即代码 IaC Terraform HashiCorp

Dubbo 序列化

青年IT男

dubbo

FIL矿池挖矿算力分发系统开发搭建

薇電13242772558

数字货币 算力

极狐GitLab 13.11功能回顾,含Kubernetes Agent和流水线合规性

极狐GitLab

系统运维 安全监控审计 #on-call #GitLab 极狐GitLabs

5G加油站,需要中频段

脑极体

Python3 Note 如何合理使用assert

awen

Python assert

用 Java 实现坦克大战,这个有点强了!

Java架构师迁哥

AI医疗发展中的机遇与有效监管

CECBC

吾日三省 - DAY 16

Qien Z.

5月日更 半年总结

Serverless实践系列(二):为Python云函数打包依赖_语言 & 开发_刘宇_InfoQ精选文章