开发与发布【Python包】的详细步骤

简介: 开发与发布【Python包】的详细步骤

1.设定一个名称

Python包或模块的名称通常需要遵循以下条件:

所有字母小写

在pypi上没有同名的包(即使您不想公开提供您的包,您可能希望稍后将其私下指定为依赖项)1

仅使用-符号或不使用符号(注意不能使用_)

1译者注:由于作者已将名为funniest的包上传,所以我们在设定名字时不能设置为funniest

2.创建框架

funniest的初始目录结构应该是这样的:

image

最高级的目录是我们软件配置管理仓库的根目录,比如funniest.git,同样叫funniest的子目录是实际的python模块。我们在__init__.py中写入一个joke()函数:

image

主设置配置文件setup.py应该包含一次对setuptools.setup()的调用:

image

现在我们可以在本地安装这个包.

image

我们还可以使用符号链接安装包,以便对系统上包的其他用户立即提供对源文件的更改:

image

在我们系统中使用相同Python的其他任何地方,接着做:

image

3.在PyPi上发布

setup.py文件也是我们在PyPI上注册包名称和上传源代码的主要入口点。输入下面的代码来“注册”你的包(这将会保存包的名称,上传包的元数据,并创建pypi.python.org网页):

image

如果您之前没有在PyPI上发布过内容,则需要先创建帐户。2下面的链接可以让您浏览PyPI上对于funniest的描述

http://pypi.python.org/pypi/funniest/0.1

虽然用户可以用URL链接来查找我们的git存储库,但我们可能希望上传源代码,以便可以在不克隆存储库的情况下安装软件包。这还将使自动安装和依赖项解析工具能够安装我们的软件包。

首先创建一个资源分发:

image

这将在我们的顶级目录中创建dist/funniest-0.1.tar.gz。如果您愿意,请将该文件复制到另一台主机并尝试解压缩并安装它,来验证它是否符合要求。然后可以使用以下命令将该文件上传到PyPI3:

image

您可以组合所有这些步骤,更新元数据并在一个步骤中发布新文件:

image

想查看所有可用的setup.py命令的详细列表的话,请执行以下操作:

image

2译者注:注册的网址为 https://pypi.org/ 在pypi的网站上注册成功后,需要验证邮箱,否则后面无法上传包
3译者注:这条命令实际执行时有很多问题,推荐改为

pip install twine 
twine upload dist/*
AI 代码解读

4.安装包

其他用户可以通过pip命令来安装这个funniest包:

image

其他用户可以将其指定为另一个包的依赖项,并在安装该包时自动安装。

5.添加附加文件

大多数情况下,我们需要在模块中包含多个包含代码的文件。应始终在内部funniest目录中添加其他文件。例如,让我们将一个函数移动到一个新的text子模块,因此我们的目录层次结构如下所示:

image

在__init__.py中这样写:

image

在text.py中这样写:

image

所有其他Python代码都属于该funniest/funniest/目录。

6.忽略文件(.gitignore等)

还有一个我们在包目录中必须含有的文件:.gitignore,或是相同作用的软件配置管理文件。Python构建系统创建了许多中间文件,我们要小心不要提交源代码的控制权。这是funniest的.gitignore文件看起来的样子:

image

原文发布时间为:2018-07-30
本文作者:Scott Torborg
本文来自云栖社区合作伙伴“ 数据分析”,了解相关信息可以关注“ 数据分析

目录
打赏
0
0
0
1
73591
分享
相关文章
PySide vs PyQt:Python GUI开发史诗级对决,谁才是王者?
PySide 和 PyQt 是 Python GUI 开发领域的两大利器,各有特色。PySide 采用 LGPL 协议,更灵活;PyQt 默认 GPL,商业使用需授权。两者背后团队实力雄厚,PySide 得到 Qt 官方支持,PyQt 由 Riverbank Computing 打造。API 设计上,PySide 简洁直观,贴近原生 Qt;PyQt 增加 Pythonic 接口,操作更高效。性能方面,两者表现优异,适合不同需求的项目开发。选择时可根据项目特点与开源要求决定。
154 20
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
105 1
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
怎么开发Python第三方库?手把手教你参与开源项目!
大家好,我是程序员晚枫。本文将分享如何开发Python第三方库,并以我维护的开源项目 **popdf** 为例,指导参与开源贡献。Popdf是一个PDF操作库,支持PDF转Word、转图片、合并与加密等功能。文章涵盖从fork项目、本地开发、单元测试到提交PR的全流程,适合想了解开源贡献的开发者。欢迎访问[popdf](https://gitcode.com/python4office/popdf),一起交流学习!
148 21
怎么开发Python第三方库?手把手教你参与开源项目!
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
66 9
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
108 3
基于Python+Vue开发的房产销售管理系统源码+运行
基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
69 2
猪行天下之Python基础——1.3 Python开发IDE之PyCharm(下)
内容简述: 1、为什么要使用IDE? 2、PyCharm的下载安装 3、PyCharm的基本使用 4、PyCharm程序调试 5、共用全局的Python解释器
323 0
猪行天下之Python基础——1.3 Python开发IDE之PyCharm(中)
内容简述: 1、为什么要使用IDE? 2、PyCharm的下载安装 3、PyCharm的基本使用 4、PyCharm程序调试 5、共用全局的Python解释器
228 0

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等