写点什么

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

评论

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

【鲲鹏BoostKit】OminiRuntime ——高效统一的大数据分析Runtime底座

极客天地

js作用域、作用域链和它的一些优化

hellocoder2029

JavaScript

成为web前端工程师培训和自学选择

小谷哥

javascript 高级编程 之 Array 用法总结

hellocoder2029

JavaScript

开源代码安全 | 西门子为保护代码安全采取了什么措施?

龙智—DevSecOps解决方案

SCA SCA工具 开源代码安全

linux(centos)中部署docker(步骤超全,含带一些发展史和一些概念)

A-刘晨阳

Docker Linux 运维 11月月更

几个你必须知道的React错误实践

xiaofeng

React

vue中的几个高级概念

yyds2026

Vue

Nodejs+Redis实现简易消息队列

coder2028

node.js

javascript尾递归优化

hellocoder2029

JavaScript

Element UI 省市区数据联动

源字节1号

微信小程序 软件开发 前端开发 后端开发

​GOPS演讲 | 如何构建现代运营与支持体系,实现团队的高效协同

龙智—DevSecOps解决方案

gops ITSM ITSM解决方案 GOPS全球运维大会

用Vue.js开发企业管理后台,我做到了

博文视点Broadview

webpack热更新原理(面试大概率会问)

Geek_02d948

webpack

JavaScript刷LeetCode拿offer-js版字典

Geek_07a724

JavaScript LeetCode

云栖盘点 | 一文 get 云原生峰会的最全发布

云布道师

云原生 云栖大会

HarmonyOS 3开启新一轮升级,3年前的nova 6也能更新!

极客天地

vue3实战-完全掌握ref、reactive

yyds2026

Vue

Vue虚拟dom是如何被创建的

yyds2026

Vue

webpack模块化的原理

Geek_02d948

webpack

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

node.js

技术指南 | 如何集成Perforce版本控制系统Helix Core (P4V) 与软件生命周期管理工具Helix ALM

龙智—DevSecOps解决方案

版本控制 软件开发生命周期 版本管理 ALM

安装户外LED显示屏安装注意事项

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

为啥不适合,依然有很多人大张旗鼓搞企业内部开源?(下)

laofo

研发效能

深入分析React-Scheduler原理

xiaofeng

React

升级到React-Router-v6

xiaofeng

React

Nodejs相关ORM框架分析

coder2028

node.js

在线研讨会报名 | 如何通过自动化测试实现降本、增效与提质

龙智—DevSecOps解决方案

自动化测试 研讨会

docker如何在容器外执行容器内命令

A-刘晨阳

Docker Linux 运维 11月月更

webpack配置优化,让你的构建速度飞起

Geek_02d948

webpack

云栖盘点:2022 云网络产业干货分享

云布道师

云网络 云栖大会

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