如何发布Python包,具体过程是什么
Admin 2022-07-14 群英技术资讯 521 次浏览
本文主题如下:
编写一个包(Python 源代码),但不是本文的重点。
编译包,观察编译后的文件。
发布包,发布的包可以有多种类型。
如何在 Pypi 中查看已发布的包。
注意:
本文编写的包在 Python2 环境下测试通过,实际上这个包(只是个例子)比较简单,在 Python3 下也能运行。
本文知识点可能陈旧,比如 Python Pypi 官方已做了很大改变。
这篇文章主要描述如何发布一个包,不描述如何编写一个包,如果你没有代码(只想学习如何发布包),可下载下面的示例。
$ wget "https://files.pythonhosted.org/packages/96/66/43e6df87373557553be2b4343db27d008c6dcefa110ccff38cba1459ca07/ywdblogmath-0.1.tar.gz"
可以认为下载的源码就是读者自己编写的,然后在本地测试、生成、发布包。
运行下列命令解压缩,并将代码放到特定目录:
$ tar ywdblogmath-0.1.tar.gz # 代码在 /root/python 目录下 $ mv setup.py ywdblogmath /root/python
为了生成和发布包,必须编写 setup.py 文件,编写该文件必须依赖于 setuptools 包(还记得上一篇文章讲解的 Python 官方包管理工具),这个包本身也是一个 Python 包。
#!/usr/bin/env python from setuptools import setup setup(name='ywdblogmath', version='0.1', description='A silly ywdblogmath package', author='ywdblog', author_email='ywdblog@gmail.com', url='http://www.yudadan.com/', packages=['ywdblogmath', 'ywdblogmath.adv'], )
望文生义,不过多讲解相应的参数。
首先将该代码生成一个本地包,然后编写代码测试该包的功能。
在开发模式下安装包:
$ python setup.py develop
观察安装后生成的文件:
/usr/local/lib/python2.7/dist-packages/ywdblogmath.egg-link
/usr/local/lib/python2.7/dist-packages/easy-install.pth
这二个文件包含的内容就是 /root/python(一个软连接)。
编写测试文件 example.py :
import sys import ywdblogmath print(ywdblogmath.add(4,5)) print(ywdblogmath.division(4, 2)) print(ywdblogmath.multiply(10, 5)) print(ywdblogmath.squareroot(48))
然后运行 example.py:
$ python example.py 9 2 50 6.92820323028
(1)为了发布包,必须在 pypi.org 注册一个用户,注册邮箱需要验证。
(2)配置 $HOME”.pypirc” 文件:
[distutils] index-servers=pypi [pypi] repository = https://upload.pypi.org/legacy/ username = pypi.org 登录名 password = pypi.org 登陆密码
在发布包之前,运行下列命令了解所有可用的命令:
$ python setup.py --help-commands
先编译包:
$ python setup.py build
运行完成后生成 /root/python/build 目录,所以编译的文件保存在该目录下。
(1)生成 tar.gz 包
$ python setup.py sdist
运行后产生下列文件:
/root/python/dist/ywdblogmath-0.1.tar.gz
/root/python/ywdblogmath.egg-info (python setup.py egg_info 命令也会生成该文件)
(2)生成 egg 包
$ python setup.py bdist_egg
运行后产生下列文件:
/root/python/dist/ywdblogmath-0.1-py2.7.egg
/root/python/ywdblogmath.egg-info (python setup.py egg_info 命令也会生成该文件)
(3)生成 wheel 包
$ python setup.py bdist_wheel
运行后产生下列文件:
/root/python/dist/ywdblogmath-0.1-py2-none-any.whl
/root/python/ywdblogmath.dist-info
最后发布包(任何一个命令都可以):
# 发布 .tar.gz 包 $ python setup.py sdist upload # 发布 egg 包 $ python setup.py bdist_egg upload # 发布 wheel 包 $ python setup.py bdist_wheel upload
至于发布什么类型的包,读者自己决定,如果想让所有的包安装工具(比如 pip、easy_install )都能安装你发布的包,可同时发布这三种类型的包。
登录 pypi.org 查看发布的包
在发布包的时候,可能会遇到很多命令行提示的错误,这些内容不是本文的重点,另外注意 setpy.py 中的包版本号,可以测试发布多版本的包。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Python矩阵输入python输入(数组、矩阵)一维输入对应不同变量一维数组的输入问题二维数组的输入问题Python矩阵输入经常在尝试python一些函数功能时想随便输入一个矩阵感
大家好,本篇文章主要讲的是Python中最神秘missing()函数介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
对搜索引擎来说,爬虫不可或缺;对舆情公司来说,爬虫是基础;对 NLP来说,爬虫可以获取语料;对初创公司来说,爬虫可以获取初始内容。但是爬虫技术纷繁复杂,不同类型的抓取场景会运用到不同的技术。
本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于第三方库交叉编译的问题,交叉编译指的是在一个平台上生成另一个平台上的可执行代码,下面一起来看一下,希望对大家有帮助。
今天给大家分享的是关于python如何实现udp文件传输的功能,在Python中可以利用socket来实现文件传输的功能,那么具体怎样做呢?下文有示例代码供大家参考,感兴趣的朋友可以了解看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008