怎么将自己写的模块上传到pypi
本篇内容介绍了“怎么将自己写的模块上传到pypi”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
楔子
我们在安装第三方包的时候,直接一个pip install xxx命令就搞定了,然后pip会去pypi上寻找我们要安装的包,然后下载下来。
而pypi(Python Package Index )你可以看成是官方维护的一个大仓库,专门用来存储世界各地的程序员编写的第三方模块。我们使用pip进行安装的时候就会去这个仓库里面找,找到了进行下载,找不到就提示不存在。
当然我们在安装的时候还可以指定清华源、豆瓣源,因为pypi在国外,下载有时候比较慢,而一旦指定了国内的源,那么就不会去pypi上下载了,所以你可以看成国内也有仓库,专门负责搬运pypi里面的内容。
上传模块至pypi
总共分为三步:编写模块、编译模块、上传模块。
编写模块
我们看一下要上传到pypi的模块长什么样子。
hanser-module-upload:项目的根目录
hanser:模块名,我们后面可以使用from hanser import xxx,或者import hanser
hanser下面的两个py文件:相应的代码
LICENSE:开源的 LICENSE,如:Apache License 2.0,MIT License 等等
README.md:关于项目的描述,描述如何安装、使用等情况
setup.py:setuptools 的构建脚本
然后我们看看代码长什么样子。
#calc.py defadd(x:int,y:int)->int: returnx+y defsub(x:int,y:int)->int: returnx-y #__init__.py from.calcimportadd,sub
然后最重要的就是编写setup.py。
#setup.py是一个setuptools的构建脚本,其中包含了项目和代码文件的信息 #如果没有需要先安装,pipinstallsetuptools importsetuptools setuptools.setup( #项目的名称 name="anser-module-upload", #项目的版本 version="0.0.1", #项目的作者 author="布诺妮亚", #作者的邮箱 author_email="hanser@baka.com", #项目描述 description="简单的加减运算上传测试", #项目的长描述 long_description="简单的加减运算上传测试", #以哪种文本格式显示长描述 long_description_content_type="text/markdown",#所需要的依赖 install_requires=[],#比如["flask>=0.10"] #项目主页 url="https://www.baidu.com", #项目中包含的子包,find_packages()是自动发现根目录中的所有的子包。 packages=setuptools.find_packages(), #其他信息,这里写了使用Python3,MITLicense许可证,不依赖操作系统。 classifiers=[ "ProgrammingLanguage::Python::3", "License::OSIApproved::MITLicense", "OperatingSystem::OSIndependent", ], )
编译
在上传代码之前,我们需要将代码编译。除了setuptools之外,我们还需要一个模块wheel,如果没有则需要安装。
pip install --user --upgrade setuptools wheel
然后对我们的setup.py进行编译。
python setup.py sdist bdist_wheel
编译成功之后会在项目中生成多个目录,其中有一个dist目录是我们需要上传的。
上传
然后就是上传了,我们需要前往(https://pypi.org/account/register/)注册一个账号,然后再安装一个模块:twine,因为上传需要使用到它。
pip install --user --upgrade twine
安装完成之后,就可以使用如下命令上传 dist 文件夹里面的文件。
python -m twine upload --repository pypi dist/*
我们看到上传成功,下面去页面看一下。
注意:这里为了区分,我们把根目录名和模块名取得不一样,我们需要pip install hanser-module-upload,然后在site-packages下面会有一个hanser目录,也就是我们所使用的模块。但是一般情况下,这两者都是一样的。比如:我们安装pandas,那么得到的模块也叫做pandas。
下面就来试一试吧:
成功安装,当然也是可以使用的。
以后如果我们自己写了一个比较不错的模块的时候,就可以发布到pypi上面。
“怎么将自己写的模块上传到pypi”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...