在软件开发领域工作了几年之后,我终于决定出演自己的个人项目。 因此,就像任何人一样,我从一小部分开始。 我决定为Ubersuggest工具编写一个微型API作为Python包。 因此,我搜索了一个指南,该指南将为我提供编写和部署自己的程序包的提示和步骤。 就在那一刻,我意识到互联网上有很多关于该主题的内容,但是您什么也不能称之为指南。 因此,我决定与您分享我的亲身经历,您将如何使用我认为是好的做法来编写和部署自己的Python包。
在确定要实施的软件包之后,还必须设置脚本(例如脚本)来运行测试和许可证文件(对于该项目,我决定使用Beer-ware License
)也很重要。 另外,要部署Python软件包,您必须具有setup.py
文件。 您可以使用我创建的模板。 如何提交文件是一个非常有争议的话题。 我通常尝试每次提交100行代码。 如果仅是调试代码,则比这好一点,而应避免的事情多,这是件好事,因为当您运行项目时,这非常糟糕,最后,您仅提交带有“ Project done”之类的消息的所有文件。
#setup.py
从os导入路径
从setuptools导入find_packages
从setuptools导入setuppwd = path.abspath(path.dirname(__ file__))
使用open(path.join(pwd,'README.md'),encoding ='utf-8')为f:
long_description = f.read(),其中open('requirements.txt')为f:
required = f.read()。splitlines()setup(name ='pyusuggest',
版本='1.0.4',
description ='用于将Ubersuggest与Python集成的API',
long_description = long_description,
long_description_content_type ='文本/降价',
url ='https://github.com/Olegario96/pyusuggest',
author ='Gustavo Olegario',
author_email='gustavo-olegario@hotmail.com',
许可证='啤酒'',
包= ['pyusuggest'],
install_requires =必填,
zip_safe = False)
[…]应该避免的事情更多,因为当您运行整个项目时,这非常糟糕,最后,您只提交所有文件,并带有诸如“项目已完成”之类的消息。[…]
一旦配置好初始设置,您就可以进行了。 这里没有太多要说的。 只需定期遵守提交即可。 始终保持您的requirements.txt
文件最新也很重要。 不仅是本身的版本,还是您正在使用的软件包。
代码编写完成后,就该进行测试了! 这是任何软件开发过程中非常重要的一步,因为测试是功能强大的工具,可在重构代码时将代码质量保持在最低水平。 如果您像我一样做一个小项目,那么使用pytest
一些单一测试就足够了。 否则,如果您尝试构建一个大型库,则也应该考虑编写一些集成测试。 在测试实施期间,您必须保持的心态是用户如何拆分您的应用程序。 我个人建议您为坏路和好路实现测试用例。 另外,如果您的项目有很多测试,那么运行脚本可能是一个好主意。
那么现在怎么办? 我们已经实现了该程序包,并在GitHub上进行了测试和发布,因此我们可以在PyPi上进行部署,对吗? 没有! 我们还有很重要的任务要做。 我们必须编写文档。 我知道这是软件开发过程中非常无聊的部分,但是请相信我,很多时候甚至您都不记得项目中编写的内容,并且文档很容易使您头脑清醒,您的大学也一样。 同样,您要实施的项目类型对于决定要遵循的文档类型非常重要。 如果您假装只写一些方法,那么docstring
标准就足够了。 除此之外,还有许多库可用于Python项目中更强大的文档。 在项目的这一部分,最好编写一个README.md
文件,其中包含软件包的最少信息,这些信息涉及您希望程序员如何安装和使用软件包。
我们差点知道了。 为了部署您的软件包,您必须首先在PyPi和TestPyPi站点中创建一个帐户。 在TestPyPi平台上,您可以在最终用户环境中部署软件包以进行测试,然后又无需真正部署它。 使用此工具可以使您打包所有依赖项,并且应用程序没有问题。
$ python setup.py sdist bdist_wheel
$麻线上传--repository-url https://test.pypi.org/legacy/ dist / *
$#现在,您可以使用TestPyPi用pip下载软件包
$#存储库。
$ pip install --index-url https://test.pypi.org/simple/ your-package
经过最终审查后,您可以在PyPi站点上部署自己的软件包。 如果您没有使用setuptools和.egg文件的经验,那么打包所有依赖项可能是一个小技巧。 因此,我决定编写自己的部署脚本。 您也可以使用它。
#! / bin / bashpython setup.py sdist bdist_wheel
拨轮-r requirements.txt
麻线上传距离/ *
rm -rf dist / build /
rm -rf * .whl
经过最终审查后,只需将程序包部署在PyPi存储库中,现在每个人都可以使用您的全新程序包。 希望您喜欢这个小指南!