<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sproto on KK的博客</title><link>https://spin6lock.github.io/tags/sproto/</link><description>Recent content in Sproto on KK的博客</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 15 May 2022 00:00:00 +0800</lastBuildDate><atom:link href="https://spin6lock.github.io/tags/sproto/feed.xml" rel="self" type="application/rss+xml"/><item><title>sproto 添加版本号</title><link>https://spin6lock.github.io/2022/05/15/sproto%E6%B7%BB%E5%8A%A0%E7%89%88%E6%9C%AC%E5%8F%B7.html</link><pubDate>Sun, 15 May 2022 00:00:00 +0800</pubDate><guid>https://spin6lock.github.io/2022/05/15/sproto%E6%B7%BB%E5%8A%A0%E7%89%88%E6%9C%AC%E5%8F%B7.html</guid><description>&lt;p&gt;明明需求都做完了，硬要拉着人家去公司加班，真是变态 ToT&lt;/p&gt;&#10;&lt;p&gt;最近想推动一下协议版本号的事，版本号不一致的禁止登录。理论上，只要改了某条协议的定义，而客户端因为各种原因没有更新到协议文件，就有可能导致协议解析出错，服务器拿到异常数据。因为 sproto 的定义是放在 spb 文件里，而不是在网络字节流中，所以拿到数据后用不一致的 schema 去解开，真是无法预期会拿到什么，如果还直接拿这个数据去存盘了，就更危险而难以修复了&lt;/p&gt;</description></item><item><title> 发布 pysproto</title><link>https://spin6lock.github.io/2021/09/04/%E5%8F%91%E5%B8%83pysproto.html</link><pubDate>Sat, 04 Sep 2021 00:00:00 +0800</pubDate><guid>https://spin6lock.github.io/2021/09/04/%E5%8F%91%E5%B8%83pysproto.html</guid><description>&lt;p&gt;今天是个值得纪念的日子，我终于将适用于 Python 3 的 &lt;a href="https://github.com/spin6lock/python-sproto/"&gt;pysproto&lt;/a&gt; 成功上传到 pypi 了，顺便写一篇博客吐槽下 Python 的打包发布系统&lt;/p&gt;&#10;&lt;p&gt;依稀记得之前将 C 文件都放在 src 目录里，结果死活编译不过，于是都散装放在根目录了；然后 Pypi 要先发布测试包，再在网页操作一下，发布成正式包。setup.py 作为包的描述文件，long_description 字段还得用 reStructure Text 的格式写，不然就提交不过。pysproto 这个模块需要头文件，但是屡屡打包都没打进去。感觉打包模块在这里是 broken 的，&lt;a href="https://stackoverflow.com/a/35400299"&gt; 有个 stackoverflow&lt;/a&gt; 的回答精确描述了我的感受 : 在 sources 字段列举头文件会导致无法编译，distutil 不能区分 .h 文件，会试图编译对应的 .o 文件；在 headers 字段列举头文件会被忽略；在 setup 函数的 headers 字段里列举头文件能识别，但是不会被打进包里；在 Extension 函数的 include_dirs 里列举头文件，也不会打进包里。最后还是用了最高赞答案的 MANIFEST.in 文件里写一行 &lt;code&gt;graft 头文件路径 &lt;/code&gt;, 终于解决问题。。。&lt;/p&gt;</description></item></channel></rss>