百科狗-知识改变命运!
--

如何开源你的Python库

梵高1年前 (2023-11-21)阅读数 32#技术干货
文章标签许可证

写了一个Python库。自己觉着这太棒了!如果让人们能够轻松使用它不是很优雅么?这有一个需要考虑的清单,以及在开源Python库时要采取的具体步骤。

1、源码

将代码放在GitHub上,这里有很多开源项目,并且人们很容易提交拉取请求。

2、许可证

选择一个开源许可证。一般来说MIT许可证是一个挺好的宽容许可证。如果你有特定要求,CreativeCommon的选择许可证可以指导你完成其它选择。最重要的是,在选择许可证时要记住三条规则:

不要创建自己的许可证。

不要创建自己的许可证。

不要创建自己的许可证。

3、README

将一个名为README.rst的文件(使用ReStructuredText格式化)放在项目树的顶层。

GitHub将像Markdown一样渲染ReStructuredText,而ReST在Python的文档生态系统中的表现更好。

4、测试

写测试。这对你来说没有用处。但对于想要编写避免破坏相关功能的补丁的人来说,它非常有用。

测试可帮助协作者进行协作。

通常情况下,如果可以用pytest运行就最好了。还有其他测试工具——但很少有理由去使用它们。

5、样式

使用linter制定样式:PyLint、Flake8或者带上--check的Black。除非你使用Black,否则请确保在一个文件中指定配置选项,并签入到版本控制系统中。

6、API文档

使用docstrings来记录模块、函数、类和方法。

你可以使用几种样式。我更喜欢Google风格的docstrings,但ReSTdocstrings也是一种选择。

Sphinx可以同时处理Google风格和ReST的docstrings,以将零散的文档集成为API文档。

7、零散文档

使用Sphinx。(阅读我们这篇文章。)教程很有用,但同样重要的是要指明这是什么、它有什么好处、它有什么坏处、以及任何特殊的考虑因素。

8、构建

使用tox或nox自动运行测试和linter,并构建文档。这些工具支持“依赖矩阵”。这些矩阵往往会快速增长,但你可以尝试针对合理的样本进行测试,例如Python版本、依赖项版本以及可能安装的可选依赖项。

9、打包

使用setuptools工具。写一个setup.py和一个setup.cfg。如果同时支持Python2和3,请在setup.cfg中指定universal格式的wheel。

tox或nox应该做的一件事是构建wheel并对已安装的wheel进行测试。

如何开源你的Python库

避免使用C扩展。如果出于性能或绑定的原因一定需要它们,请将它们放在单独的包中。正确打包C扩展可以写一篇新的文章。这里有很多问题!

10、持续集成

使用公共持续工具。TravisCI和CircleCI为开源项目提供免费套餐。将GitHub或其他仓库配置为在合并拉请求之前需要先通过检查,那么你就不必担心在代码评审中告知用户修复测试或样式。

11、版本

使用SemVer或CalVer。有许多工具可以帮助你管理版本:incremental、bumpversion和setuptools_scm等都是PyPI上的包,都可以帮助你管理版本。

12、发布

通过运行tox或nox并使用twine将文件上传到PyPI上发布。你可以通过在DevPI中“测试上传”。

以上内容为大家介绍了如何开源你的Python库,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)