 08 Pipenv和Python包管理 明希Python的依赖管理及Pipenv @frostming 我是谁? • 研发效能·持续集成@Tencent • 从 2014 年开始用 Python,前测试,现开发 • 开源爱好者 • Pipenv 维护者之一 队长别开枪,是我! 目录 CONTENTS 为什么需要虚拟环境 为什么需要依赖管理 Pipenv 的简单使用 Python 包管理的未来 为什么需要虚拟环境 你是否遇到过这些问题: • virtualenvwrapper • pew • pyenv-venv • conda • direnv • ... pip ? + 我们为什么需要依赖管理 pip 是否已经足够使用? 它的依赖管理有什么问题? 碰到这些问题,该怎么办? 依赖冲突 $ pip install celery django-celery $ pip install celery $ pip Poetry • 没了 可用工具 Pipenv 的简单使用 • 自动创建、管理虚拟环境,与项目绑定 • 依赖解析、锁定 • 新的requirements.txt规范,基于TOML格式 • 优美的命令行界面 Pipenv Demo Python 包管理的未来 Python 包管理的未来 PEP 517 – 与构建系统无关的配置文件格式 PEP 518 – 在指定Python构建依赖 pyproject0 码力 | 24 页 | 1.24 MB | 1 年前3 08 Pipenv和Python包管理 明希Python的依赖管理及Pipenv @frostming 我是谁? • 研发效能·持续集成@Tencent • 从 2014 年开始用 Python,前测试,现开发 • 开源爱好者 • Pipenv 维护者之一 队长别开枪,是我! 目录 CONTENTS 为什么需要虚拟环境 为什么需要依赖管理 Pipenv 的简单使用 Python 包管理的未来 为什么需要虚拟环境 你是否遇到过这些问题: • virtualenvwrapper • pew • pyenv-venv • conda • direnv • ... pip ? + 我们为什么需要依赖管理 pip 是否已经足够使用? 它的依赖管理有什么问题? 碰到这些问题,该怎么办? 依赖冲突 $ pip install celery django-celery $ pip install celery $ pip Poetry • 没了 可用工具 Pipenv 的简单使用 • 自动创建、管理虚拟环境,与项目绑定 • 依赖解析、锁定 • 新的requirements.txt规范,基于TOML格式 • 优美的命令行界面 Pipenv Demo Python 包管理的未来 Python 包管理的未来 PEP 517 – 与构建系统无关的配置文件格式 PEP 518 – 在指定Python构建依赖 pyproject0 码力 | 24 页 | 1.24 MB | 1 年前3
 11 数字货币交易系统python实践 代少飞数字货币交易系统 Python实践 代少飞 目录 CONTENTS 常见问题 数据库锁问题 任务调度框架 监控 单击此处添加标题 1 常见问题  队列数据丢失  队列挂掉  负数资产  冲钱一次,转两倍资产 用户资产 用户发现自己资产为负数 负数资产 充一次转双倍 队列数据丢失 队列挂掉 RabbitMQ 撮合或者清算队列数据丢失 订单摆上去,能交易 可动态调整(添加,修改,删除)任务 • 远程调用支持RPyC(一个用作远程过程调用,同时也可以用作分 布式计算的Python模块),少量代码,轻松远程调用 APscheduler+twisted 4 监控  交易系统一行代码写错,可能损失好几百万 监控 • 首先每一笔资金变动都得有变动前后的值和原因 • 挂单精度是否正确 • 一个账户,一个币种,不算手续费,初略盘点 • 利用订单客观数据(挂单价格,数量,手续费),复现交易,与交0 码力 | 21 页 | 1.77 MB | 1 年前3 11 数字货币交易系统python实践 代少飞数字货币交易系统 Python实践 代少飞 目录 CONTENTS 常见问题 数据库锁问题 任务调度框架 监控 单击此处添加标题 1 常见问题  队列数据丢失  队列挂掉  负数资产  冲钱一次,转两倍资产 用户资产 用户发现自己资产为负数 负数资产 充一次转双倍 队列数据丢失 队列挂掉 RabbitMQ 撮合或者清算队列数据丢失 订单摆上去,能交易 可动态调整(添加,修改,删除)任务 • 远程调用支持RPyC(一个用作远程过程调用,同时也可以用作分 布式计算的Python模块),少量代码,轻松远程调用 APscheduler+twisted 4 监控  交易系统一行代码写错,可能损失好几百万 监控 • 首先每一笔资金变动都得有变动前后的值和原因 • 挂单精度是否正确 • 一个账户,一个币种,不算手续费,初略盘点 • 利用订单客观数据(挂单价格,数量,手续费),复现交易,与交0 码力 | 21 页 | 1.77 MB | 1 年前3
 WeRoBot 1.4.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.4.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.4.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 82 页 | 88.39 KB | 1 年前3 WeRoBot 1.4.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.4.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.4.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 82 页 | 88.39 KB | 1 年前3
 WeRoBot 1.6.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.6.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.6.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 85 页 | 89.26 KB | 1 年前3 WeRoBot 1.6.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.6.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.6.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 85 页 | 89.26 KB | 1 年前3
 WeRoBot 1.5.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.5.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.5.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 83 页 | 88.85 KB | 1 年前3 WeRoBot 1.5.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.5.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.5.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 83 页 | 88.85 KB | 1 年前3
 WeRoBot 1.10.0 微信公众号开发框架文档Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 用户标签管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage session['first'] = True return '你之前没给我发过消息' Session 功能默认开启, 并使用 SQLite 存储 Session 数据。 详情请参考 Session 文档 创建自定义菜单 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot 'Hello World!' robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run() 注解 你需要 root 或管理员权限才能监听 1024 以下的端口。 你可以通过传递 server 参数来手动指定使用的服务器 import werobot robot = werobot.WeRoBot(token='tokenhere')0 码力 | 101 页 | 73.89 KB | 1 年前3 WeRoBot 1.10.0 微信公众号开发框架文档Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 用户标签管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage session['first'] = True return '你之前没给我发过消息' Session 功能默认开启, 并使用 SQLite 存储 Session 数据。 详情请参考 Session 文档 创建自定义菜单 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot 'Hello World!' robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run() 注解 你需要 root 或管理员权限才能监听 1024 以下的端口。 你可以通过传递 server 参数来手动指定使用的服务器 import werobot robot = werobot.WeRoBot(token='tokenhere')0 码力 | 101 页 | 73.89 KB | 1 年前3
 WeRoBot 1.6.0 微信公众号开发框架文档Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage session['first'] = True return '你之前没给我发过消息' Session 功能默认开启, 并使用 SQLite 存储 Session 数据。 详情请参考 Session 文档 创建自定义菜单 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot 'Hello World!' robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run() 注解 你需要 root 或管理员权限才能监听 1024 以下的端口。 你可以通过传递 server 参数来手动指定使用的服务器 import werobot robot = werobot.WeRoBot(token='tokenhere')0 码力 | 94 页 | 74.98 KB | 1 年前3 WeRoBot 1.6.0 微信公众号开发框架文档Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage LinkMessage session['first'] = True return '你之前没给我发过消息' Session 功能默认开启, 并使用 SQLite 存储 Session 数据。 详情请参考 Session 文档 创建自定义菜单 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot 'Hello World!' robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run() 注解 你需要 root 或管理员权限才能监听 1024 以下的端口。 你可以通过传递 server 参数来手动指定使用的服务器 import werobot robot = werobot.WeRoBot(token='tokenhere')0 码力 | 94 页 | 74.98 KB | 1 年前3
 WeRoBot 1.12.0 微信公众号开发框架文档Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 用户标签管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage session['first'] = True return '你之前没给我发过消息' Session 功能默认开启, 并使用 SQLite 存储 Session 数据。 详情请参考 Session 文档 创建自定义菜单 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot 'Hello World!' robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run() 注解 你需要 root 或管理员权限才能监听 1024 以下的端口。 你可以通过传递 server 参数来手动指定使用的服务器 import werobot robot = werobot.WeRoBot(token='tokenhere')0 码力 | 103 页 | 74.49 KB | 1 年前3 WeRoBot 1.12.0 微信公众号开发框架文档Session 开启/关闭 Session 修改 Handler 以使用 Session WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 用户标签管理 模板消息 返回码都是什么意思? 48001 – API Unauthorized Message Message 公共属性 TextMessage ImageMessage session['first'] = True return '你之前没给我发过消息' Session 功能默认开启, 并使用 SQLite 存储 Session 数据。 详情请参考 Session 文档 创建自定义菜单 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。 werobot.client.Client 封装了微信的部分 API 接口,我们可以使用 werobot 'Hello World!' robot.config['HOST'] = '0.0.0.0' robot.config['PORT'] = 80 robot.run() 注解 你需要 root 或管理员权限才能监听 1024 以下的端口。 你可以通过传递 server 参数来手动指定使用的服务器 import werobot robot = werobot.WeRoBot(token='tokenhere')0 码力 | 103 页 | 74.49 KB | 1 年前3
 WeRoBot 0.2.0 微信公众号开发框架文档0 码力 | 8 页 | 32.83 KB | 1 年前3 WeRoBot 0.2.0 微信公众号开发框架文档0 码力 | 8 页 | 32.83 KB | 1 年前3
 WeRoBot 1.1.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.1.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 修改 Handler 以使用 Session 可用的 Session Storage WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 Message Message 公共属性 TextMessage ImageMessage LinkMessage LocationMessage VoiceMessage VideoMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.1.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 62 页 | 75.61 KB | 1 年前3 WeRoBot 1.1.0 微信公众号开发框架文档索引 模块 | 下一页 | WeRoBot 1.1.0 文档 » WeRoBot WeRoBot 是一个微信公众号开发框架。 入门 Hello World 消息处理 使用 Session 记录用户状态 创建自定义菜单 消息加解密 部署 在独立服务器上部署 在SAE上部署 Handler 类型过滤 robot.key_click —— 回应自定义菜单 robot.filter —— 回应有指定文本的消息 Session 修改 Handler 以使用 Session 可用的 Session Storage WeRoBot.Client —— 微信 API 操作类 开始开发 自定义菜单 消息管理 用户管理 账户管理 素材管理 Message Message 公共属性 TextMessage ImageMessage LinkMessage LocationMessage VoiceMessage VideoMessage Version 0.3.1 Version 0.3.0 © 版权所有 2016, whtsky. 由 Sphinx 1.4.5 创建。 索引 模块 | 下一页 | 上一页 | WeRoBot 1.1.0 文档 » 入门 Hello World 最简单的Hello World, 会给收到的每一条信息回复 Hello World import werobot robot = werobot.WeR0 码力 | 62 页 | 75.61 KB | 1 年前3
共 185 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19














 
 