开发与发布【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/*

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
本文来自云栖社区合作伙伴“ 数据分析”,了解相关信息可以关注“ 数据分析

相关文章
|
17天前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
33 4
|
17天前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
17天前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
4天前
|
存储 API 数据库
使用Python开发获取商品销量详情API接口
本文介绍了使用Python开发获取商品销量详情的API接口方法,涵盖API接口概述、技术选型(Flask与FastAPI)、环境准备、API接口创建及调用淘宝开放平台API等内容。通过示例代码,详细说明了如何构建和调用API,以及开发过程中需要注意的事项,如数据库连接、API权限、错误处理、安全性和性能优化等。
37 5
|
9天前
|
Python 容器
[oeasy]python048_用变量赋值_连等赋值_解包赋值_unpack_assignment _
本文介绍了Python中变量赋值的不同方式,包括使用字面量和另一个变量进行赋值。通过`id()`函数展示了变量在内存中的唯一地址,并探讨了变量、模块、函数及类类型的地址特性。文章还讲解了连等赋值和解包赋值的概念,以及如何查看已声明的变量。最后总结了所有对象(如变量、模块、函数、类)都有其类型且在内存中有唯一的引用地址,构成了Python系统的基石。
19 5
|
16天前
|
机器学习/深度学习 人工智能 关系型数据库
Python开发
Python开发
33 7
|
17天前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
16天前
|
JSON API 数据格式
如何使用Python开发天猫获得淘宝买家秀API接口?
本文介绍了如何使用Python开发天猫和淘宝买家秀API接口,包括注册开放平台账号、创建应用获取API权限、构建请求URL、发送请求获取响应及解析数据等步骤,帮助开发者高效获取和处理商品信息与用户评价数据。
21 0
|
Python
项目依赖的python包requirements.txt文件的生成与安装
项目依赖的python包requirements.txt文件的生成与安装
431 0
|
7月前
|
Python Windows
Python分发包安装pip3
Python分发包安装pip3
38 0