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:3514313

评论

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

React Refs 笔记📝

程序员海军

React 7月月更

年中总结 | 与自己对话,活在当下,每走一步都算数

宇宙之一粟

年中总结 7月月更

英特尔数据中心GPU正式发货,以开放灵活提供强劲算力

科技新消息

被忽视的智能电视小程序领域

Geek_99967b

物联网

PlatoFarm社区生态福音,用户可借助Elephant Swap获得溢价收益

股市老人

2022必会的前端面试手写题

buchila11

C# 之 volatile关键字解析

陈言必行

7月月更

编码用这16个命名规则能让你少写一半以上的注释!

岛上码农

flutter ios 前端 安卓开发 签约计划第三季

研发效能的道法术器

laofo

DevOps cicd 研发效能 基础设施 持续交付

DDD领域驱动设计如何进行工程化落地

慕枫技术笔记

DDD 架构设计 7月月更

PLATO上线LAAS协议Elephant Swap,用户可借此获得溢价收益

鳄鱼视界

什么是低代码?哪些平台适合业务人员?用来开发系统靠不靠谱?

优秀

低代码 低代码平台

基于对象的实时空间音频渲染丨Dev for Dev 专栏

声网

Dev for Dev 空间音频 实时互动

深开鸿:万物智联的大江上,升起一轮开源鸿蒙月

脑极体

快手重点整治搬运、洗稿等方式的养号行为,自媒体平台如何净化内容生态

石头IT视角

openEuler Embedded SIG | 分布式软总线

openEuler

开源 分布式 操作系统 嵌入式 openEuler

SpringBoot基于异常处理exception发送邮件消息提醒

宁在春

springboot 7月月更

【周周有奖】云原生编程挑战赛“边缘容器”赛道邀你来战!

阿里巴巴云原生

阿里云 边缘容器 云原生编程挑战赛

学习Typescript(二)

bo

前端 ts 7月月更

Prometheus 的 API 稳定性保障

耳东@Erdong

Prometheus API 7月月更

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

股市老人

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

鳄鱼视界

怎样搭建企业内部维基百科

Baklib

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

西柚子

智能电视与小程序的结合

Geek_99967b

物联网

leetcode 763. Partition Labels 划分字母区间(中等)

okokabcd

LeetCode 数据结构与算法 贪心算法

requestVideoFrameCallback() 简单实例

devpoint

3D 视频处理 7月月更

第二轮1000个Okaleido Tiger,再次登录Binance NFT 1小时售罄

BlockChain先知

Bootstrap Affix和过渡效果插件的详细使用【前端Bootstrap框架】

恒山其若陋兮

7月月更

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