pip可以下载任何上传到python官网的python模块,pip导入安装包
本文主要介绍python如何将自己的包上传到PyPi,并可以通过pip进行安装。在文章中通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。
00-1010一、创建包1.1包概念简介1.2创建包结构2。上传前准备2.1完善包相关信息2.2创建包进行分发3。上传包到PyPi3.1使用PyPi测试环境熟悉上传步骤3.2,正式上传到PyPi 4。使用pip安装测试4.1软件包安装PyPi测试环境4.2软件包安装PyPi正式环境5。包版本的更新。当python逐渐用于开发项目或日常使用时,一般需要使用大量他人提供的包。这些包可以高效的帮助我们快速高效的完成指定的任务或者需求,但是有时候我们会想,如果我们可以把自己的代码打包上传到PyPi,别人也可以通过pip安装,这在为Python做贡献的同时,对自己来说也是一件很酷的事情。本文将详细介绍如何将自己的代码打包上传到PyPi。
在此之前,也建议大家在日常生活中使用python的时候,也需要有模块化的思维,把最常见的任务模块化,然后创建一个包,导入这个包以后就可以快速重用。
在撰写本文的时候,作者已经上传了一个名为common-pkg-dennis的包到PyPi,你可以通过pip install common-pkg-dennis下载、安装和查看(在这个包中,作者只是简单的放置了之前封装的关于数据库操作和下载m3u8视频文件的方法,包括加密和未加密的情况,可以下载)
目录
一、创建包
Python和其他编程语言一样,强调代码的最大重用。函数和类是主要的重用,模块(本质上是一个py文件)是较高的重用,包(本质上是包含py文件和一个__init__的文件夹。py文件)是最高的重用。一般来说,一个包会包含一个完整的解决方案,如scrapy,其中包含完整性。
这里只是简单介绍一下上面的概念,具体可以通过学习Python的基础知识来了解。
1.1 包概念简述
一般来说,包的结构如下:
示例_包
-示例_pkg
- __init__。巴拉圭
Example_package和example_pkg都是一个文件夹,而__init__。py是example_pkg文件夹中的py文件。该文件是包的标签,是必需的,可以为空。至于__init__的功能。py文件,这里就不介绍了。
当然,包可以有多层结构,如下所示:
示例_包
-示例_pkg
- __init__。巴拉圭
- sec_example_pkg
- __init__。巴拉圭
1.3本地使用
一般在python的日常使用中,处理相关性高的代码和模块都可以包含在一个包中,比如下面这个包,里面包含了媒体处理相关的模块。
媒体
- __init__。巴拉圭
-视频
- __init__。巴拉圭
- volume.py #包含与处理声音等相关的函数。
- convert.py #包含转码相关函数。
- combine.py #包含视频合成相关
-音频
- __init__。巴拉圭
- convert.py #包含转码相关函数。
- compile.py #包含编译相关的函数。
然后将上述包移动到python的根site_packages文件夹中,或者在虚拟环境中指定site_packages,然后就可以直接导入上述包或者
者指定模块,python会按照包和模块搜索路径完成加载
一般日常中,我们基本达到这个程度,不过,如果自己感觉自己维护的包足够优秀,或者在解决特定领域问题时,足够强大且性能优异,可上传到PyPi并与他人共享,说不定自己的包后面很有可能成为python后续版本内的buildin模块。
二、上传前准备
2.1 完善包相关信息
我们接着使用example项目举例,需要在该文件夹内创建以下文件,以为接下来创建可供分发的文件做准备
example_package
2.1.2 setup.py简述
setip.py文件相对比较关键,一般在该文件内约定此次分发的包的版本号、名称、作者、联系方式、项目地址、python版本要求等信息,其文件内最基本的主信息如下:
import setuptools #导入setuptools打包工具
2.1.3 README.md文件简述
README.md文件主要是用来对此次发行的包的详细说明,包括用法和注意事项等
# Example Package
2.1.4 LICENSE文件简述
版权声明文件,一般告诉使用者可以在什么场景下使用,如果想详细了解,可访问 https://choosealicense.com 进行了解,此处不再详细展开,一般直接将以下文案复制至文件内即可
Copyright (c) 2021 The Python Packaging Authority
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
2.2 创建可供分发的包
2.2.1 安装或更新setuptools 和wheel
一般使用setuptools和wheel工具打包生成可上传和分发,并可使用pip安装的包文件
#安装或更新setuotools和wheel
2.2.2 打包并生成tar.gz和whl文件
然后,在终端或cmd命令窗,将当前路径cd到setup.py文件所在文件夹,并正式打包
#以mac为例
运行完毕后,如果顺利,则会在与setup.py文件同一层级,产生一个dist文件夹,此时文件夹结构如下:
example_package
该文件夹内会包含whl和tar.gz类型文件,此时,其实可以直接将该文件转发给朋友,朋友保存到本地,就可通过pip进行安装,不过这样还没达到我们的目的。
三、上传包至PyPi
3.1 使用PyPi测试环境先熟悉上传步骤
PyPi为了便于大家练习上传过程,所以还同步提供了功能与PyPi完全一样但相互隔离的测试环境,一般通过twine包将以上打包好的文件上传至PyPi
在这之前,大家需要首先注册一个test环境的PyPi账号,可通过链接 https://test.pypi.org/account/register/ 进行注册。
然后大家需要在我的→account setting处设置自己用API上传时使用的token信息,工作原理类似git hub,快速传送门 https://test.pypi.org/manage/account/#api-tokens。
好了,一切准备就绪
3.1.1 安装twine
首先使用以下命令安装或更新twine
python3 -m pip install --user --upgrade twine
3.1.2 使用twine上传
此处,我们将dist下的分发文件,先上传到PyPi的测试环境,上传完毕后,可以在测试环境的PyPi自己的主页,your projects处查看并管理(包括版本信息等,一般就是setup.py文件内设置的信息)
注意,在终端或cmd窗内运行以下命令时,均需保证当前文件夹路径与setpy.py一致
python3 -m twine upload --repository testpypi dist/*
当运行以上命令后,一般会出现Enter your username和Enter your password提示,其中username输入__token__,password输入token值(使用测试环境的token值),然后按Enter即可
3.2 正式上传至PyPi
当在测试环境上传成功后,便可上传至PyPi的生产环境
python3 -m twine upload dist/*
当运行以上命令后,一般会出现Enter your username和Enter your password提示,其中username输入__token__,password输入token值(使用正式环境的token值),然后按Enter即可
到此,大功告成,接下来,便可直接用pip进行安装了
四、使用pip安装测试
4.1 安装PyPi测试环境的包
运行以下命令,则会从PyPi测试环境下载并安装上传的分发包
python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps example-pkg-YOUR-USERNAME #其中 example-pkg-YOUR-USERNAME 即自己指定的包名
4.2 安装PyPi正式环境的包
pip install example-pkg-YOUR-USERNAME
五、包版本更新
后续,如果需要对自己的包发布新版本,照以上步骤完成即可,别忘了修改setup.py文件内的版本号信息
到此这篇关于python如何将自己的包上传到PyPi并可通过pip安装的方法步骤的文章就介绍到这了,更多相关python包上传到PyPi并通过pip安装内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。