教你在几分钟内构建一个Python包

构建包的过程有些复杂,但从长远来看是值得的,尤其是可以创建属于自己的Python包 。本文的目的是通过对构建一个新发行包的案例研究,让您了解需要构建什么以及如何构建python包的基础知识 。

教你在几分钟内构建一个Python包

文章插图
 
开始首先,您肯定需要设置一个或多个内容,以便了解如何构建python包 。因此,需要的东西的如下:
  • IDE (Vs Code)
  • Python 3
构建Python包本文中构建的标称为b_dist 。b_dist是一个分布包,它有Gaussian, Binomial, e.t.c等类 。但首先,使用下面的映射结构创建包文件夹:
b_dist/__init__.pyBinomialdistribution.pyGuassiandistribution.pyGeneraldistribution.pylicence.txtsetup.cfgREADME.mdsetup.py首先,您必须为上面在映射中列出的那些创建一个空文件 。注意:b_dist是一个文件夹,setup.py带有自述文件 。md不在b_dist文件夹中 。
让我们先谈谈b_dist里面的文件:
b_dist/__init__.py
这个文件告诉python这个文件夹包含一个包 。另外,包总是由init文件组成,即使它是空的 。当您在python程序中导入一个包时,剩余的__init__文件就会运行 。在这种情况下,其他的__init__文件导入高斯、二项和分布模型,以便在使用包时直接导入这些类 。
b_dist/Binomialdistribution.py
二项文件是用于计算和可视化二项分布的类 。
b_dist/Guassiandistribution.py
高斯文件是用于计算和可视化高斯分布的类 。
b_dist/Generaldistribution.py
通用分布文件是用于计算和可视化概率分布的类 。
b_dist/licence.txt
许可证档案实际上载有你的版权资料,说明你打算准许其他使用者自由使用你的套件 。
b_dist/setup.cfg
cfg文件是一个保存自述文件数据的文件 。
README.md
这是包的文档 。它描述了包是如何工作的
setup.py
py文件是pip安装包所必需的 。此外,它还包含关于包的元数据 。请注意以下属性,如名称和包 。这个属性必须与文件夹名' b_dist '具有相同的值,以便在上传我们的包时避免bug 。
 
本地运行包让我们先通过输入下面的代码在本地运行包:
# change directory to where the setup file and the package is located~$ cd python_package~/python_package:$ # Install the package locally# NOTE:pip install . installs any setup.py file in that directory.~/python_package:$ pip install .输入后应该是输出:
Processing /python_packageBuilding wheels for collected packages: b-distBuilding wheel for b-dist (setup.py) ... doneCreated wheel for b-dist: filename=b_dist-0.4-py3-none-any.whl size=5108 sha256=d4c6f74daa1add07f37b01a74294e86ab07d655a6e0944bbb46ed6503ae493efStored in directory: /tmp/pip-ephem-wheel-cache-3pvdd9ue/wheels/1e/f9/a3/568195cccd4e2d1dcb1edaf9c2708f651b90b6af6fbdfd3f36Successfully built b-dist最后,我们的包已经安装好了 。让我们通过输入下面的代码来测试它是否有效:
# open the python shellIn[1]: /python_package$ pythonOut[1] Python 3.7.3 (default, Mar 27 2019, 22:11:17) [GCC 7.3.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information.In[2] >>>from b_dist import GuassianIn[3] >>> Guassian(10,5)Out[3] mean 10, standard deviation 5太棒了! !,现在我们的包可以工作了,让我们继续进行下一个部分 。
 
上传Python包 
使用PyPI可以快速上传新构建的包 。首先来看什么是PyPi 。PyPi代表Python包索引(PyPi),它是Python编程语言的软件存储库 。
所以现在要将我们的包上载到PyPI站点的测试版本,另外要确保pip安装过程是否正常,然后现在要上载到PyPI站点 。
首先,用测试创建一个帐户 。对两个站点使用相同的用户名和密码 。
在成功创建两个帐户之后,让我们返回IDE并将包上传到TestPyPi 。但首先,要与这些站点通信,您需要pip安装一个名为twine的库,使用:
pip install twine所以,安装twine后,输入以下代码先上传到TestPyPi:
# Creating the distribution package to be uploaded~/python_package:$ python setup.py sdist输入代码后,您将看到两个新文件夹,然后移动到下一行代码:
# Upload the package created using twinw~/python_package:$ twine upload --repository-url https://test.pypi.org/legacy/ dist/*Output: Uploading distributions to https://test.pypi.org/legacy/# enter your username and password used in registraion to the siteOutput: Enter your username : bideenOutput: Enter your password : ########输入密码后,你会看到一条成功的消息:“上传package_name 100%成功” 。要检查上传是否成功,请访问您的TestPyPi帐户并查看您的新包 。


推荐阅读