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

相关文章
|
6月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
5月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
680 7
|
6月前
|
数据处理 开发工具 开发者
requirement.txt 管理python包依赖
在 Python 项目中,`requirements.txt` 用于记录依赖库及其版本,便于环境复现。本文介绍了多种生成该文件的方法:基础方法使用 `pip freeze`,进阶方法使用 `pipreqs`,专业方法使用 `poetry` 或 `pipenv`,以及手动维护方式。每种方法适用不同场景,涵盖从简单导出到复杂依赖管理,并提供常见问题的解决方案,帮助开发者高效生成精准的依赖列表,确保项目环境一致性。
1931 4
|
6月前
|
算法 程序员 API
电商程序猿开发实录:淘宝商品python(2)
本文分享了开发者在对接淘宝商品详情API过程中的真实经历,涵盖权限申请、签名验证、限流控制、数据解析及消息订阅等关键环节,提供了实用的Python代码示例,帮助开发者高效调用API,提升系统稳定性与数据处理能力。
|
7月前
|
数据采集 存储 数据库
Python爬虫开发:Cookie池与定期清除的代码实现
Python爬虫开发:Cookie池与定期清除的代码实现
|
8月前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
1021 1
|
8月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
624 0
|
Python
项目依赖的python包requirements.txt文件的生成与安装
项目依赖的python包requirements.txt文件的生成与安装
1455 0
|
Python Windows
Python分发包安装pip3
Python分发包安装pip3
260 0
python 获取当前项目引用的第三包(不是当前环境里面安装的所有安装包)
python 获取当前项目引用的第三包(不是当前环境里面安装的所有安装包)