【Python】打包与发布(Packaging and distributing projects)

以Unix/macOS系统为例。

前提准备:确保pip为最新版本,可使用以下命令来更新pip:

python3 -m pip install --upgrade pip

一、创建一个简单的项目
我们在目录packaging_tutorial下进行操作。
项目名称为:example_package_wayne
整个文件结构为:
在这里插入图片描述

__init__.py:设置为空(简单起见)
calculator.py:实际的模块,这里是一个四则运算,内容为:

def calc(x, y, operator):result = 0if operator == "+":result = x + yif operator == "-":result = x - yif operator == "*":result = x * yif operator == "/":result = x / yreturn result

pyproject.toml:

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "example_package_wayne"
version = "0.0.1"
authors = [{ name="Example Author", email="author@example.com" },
]
description = "A small example package"
readme = "README.md"
requires-python = ">=3.7"
classifiers = ["Programming Language :: Python :: 3","License :: OSI Approved :: MIT License","Operating System :: OS Independent",
][project.urls]
"Homepage" = "https://github.com/pypa/sampleproject"
"Bug Tracker" = "https://github.com/pypa/sampleproject/issues"

README.md:

# Example PackageThis is a simple example package. You can use
[Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/)
to write your content.

LICENSE:

Copyright (c) 2018 The Python Packaging AuthorityPermission 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.

二、生成发行版存档
上面列出的文件将自动包含在您的源代码发行版中。

确保安装了最新版本的PyPAbuild,可使用以下命令来更新:

python3 -m pip install --upgrade build

现在可以在pyproject. toml所在的目录下运行如下命令:

python3 -m build

在这里插入图片描述

该命令执行完后,会在dist目录中生成如下红框内的两个文件:
在这里插入图片描述

其中,tar.gz文件是源发行版(a source distribution ),而.whl文件是构建发行版(a built distribution)。

三、本地安装/卸载该包&测试

3.1安装
packaging_tutorial目录下,执行如下命令:

pip3 install dist/example_package_wayne-0.0.1-py3-none-any.whl

若显示以下内容,则表示安装该包成功!
在这里插入图片描述

3.2 测试

packaging_tutorial目录下,新建目录tests,在该目录tests下创建文件test_calclator.py,其内容为(这里介绍了三种导入与使用该包的方式):

# 三种导入包的方式
""" 方式一
import example_package_wayne.calculator  print(example_package_wayne.calculator.calc(8,4,"+"))
print(example_package_wayne.calculator.calc(8,4,"-"))
print(example_package_wayne.calculator.calc(8,4,"*"))
print(example_package_wayne.calculator.calc(8,4,"/"))
"""""" 方式二
from example_package_wayne import calculatorprint(calculator.calc(8,4,"+"))
print(calculator.calc(8,4,"-"))
print(calculator.calc(8,4,"*"))
print(calculator.calc(8,4,"/"))
"""# 方式三
from example_package_wayne.calculator import calcprint(calc(8,4,"+"))
print(calc(8,4,"-"))
print(calc(8,4,"*"))
print(calc(8,4,"/"))

在这里插入图片描述

3.3卸载

packaging_tutorial目录下,执行如下命令:

pip3 uninstall example_package_wayne

在这里插入图片描述

参考文献:
Packaging Python Projects — Python Packaging User Guide

6. Modules — Python 3.11.3 documentation

Packaging and distributing projects — Python Packaging User Guide

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352417.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

2023国际管理会计教育联盟发展论坛在沪成功召开

2023年5月7日,由教育部中外人文交流中心、国际管理会计教育联盟(下称“联盟”)主办,中国商业会计学会、上海交通大学安泰经济与管理学院承办的2023国际管理会计教育联盟发展论坛(下称“发展论坛”)在上海成…

系统架构师之高内聚低耦合

一、概念: 标记耦合(Stamp Coupling)和数据耦合(Data Coupling)是软件设计中两种不同的耦合类型,它们之间的区别如下: 标记耦合:标记耦合是指模块之间通过参数传递标记或标识符来进…

怎样把m4a转换成mp3格式?

怎样把m4a转换成mp3格式?大家都知道m4a音频格式兼容性差,这已成为许多小伙伴头疼的问题,因为很多人不会m4a转mp3的方法,从而导致m4a音频无法正常播放。在过去,想把m4a转换成mp3格式确实有一定的难度,但是如…

m4a怎么转换成mp3格式?

最近总有伙伴问我:“小编,m4a怎么转换成mp3格式?有没有什么简单有效的方法”。其实要想把m4a转换成mp3格式,转换工具就是钥匙,有了这把钥匙你就能更快地打开m4a转mp3格式的大门了。所以,选择好转换工具&…

如何快速的把m4a转换成mp3格式

无论是把m4a转换成mp3格式,还是把其他别的格式转换成mp3格式,一直都是有搜索热度的问题。虽然近两年把m4a转换成MP3的解决方法有很多,但是依旧满足不了小伙伴们寻找转换方法的现状。最主要的原因不是大家找不到转换成MP3的方法,而…

怎样把m4a转换mp3格式?

怎样把m4a转换mp3格式?m4a是苹果手机上的录音文件格式,随着苹果手机的广泛普及,m4a音频文件使用也越来越多,有的小伙伴将m4a音频文件转载到电脑上后,会因为兼容性的问题导致m4a文件不能打开播放。由于m4a是苹果公司开发…

m4r是什么文件格式?m4r怎么转成mp3?

你知道m4r是什么文件格式吗?如果你不知道是正常的,因为它真的太少见了,其实m4r是iPhone铃声的一种音频格式,简单的说m4就是音质音频文件的格式,并且实在iPhone手机上使用。如果你是安卓手机,是不能打开这种…

如何将录音m4a转换为mp3格式?

如何将录音m4a转换为mp3格式?前段时间由于工作原因,需要上传录音文件到一个网站上,可是这个录音文件怎么也上传不上去,查看原因后才发现原来网站只支持mp4的音频文件,而我是用苹果手机录音的,录音文件是m4a…

m4a怎么转换mp3格式?详细的步骤

有经常下载歌曲的小伙伴们,一定遇到过m4a格式的音频文件,这种格式的音频文件因为自身适配性的原因,导致很多播放器是无法对其进行正常播放,所以用户要想使用此格式的视频,就不得不把它转成主流格式mp3,这样…

m4a音频转换mp3格式的方法

很多朋友都在问m4a音频转换mp3格式的方法这个问题,小编根据大家的实际要求和诉求在网上寻找了很多的m4a转换成mp3的方法,这些方法都可以将m4a转换成mp3,但是在速度和稳定性方面有所差异。尤其是在使用的软件方面,每个软件中所具备…

m4a格式怎么转换成mp3,非常简单

m4a格式怎么转换成mp3?m4a是一种文件的扩展名,确切的说是一种音频文件格式。 为了区分mpeg-4中的音频和视频文件,苹果率先使用m4a格式替换了mpeg-4中的音频文件扩展名。 因为m4a主要应用于苹果手机,苹果手机的用户量很大&#xff…

如何把m4a转换成mp3?音频格式转换步骤

最近有好多朋友反映自己手机录音机里文件是m4a格式的,那这样m4a格式的音频在音响,播放器或者很多别的软件中都是无法进行播放的,而且m4a格式的音频在传输中还会受到一定的限制,这个时候我们就需要把m4a转换成常用的Mp3音频格式来完…

m4r转mp3格式用什么音频转换器好

经常玩弄铃声制作的童鞋也许比较清楚m4r是什么格式,m4r是iphone铃声的一种音频格式,在国内的一些iPhone铃声资源站或者是苹果iTunes上都是有得下载,不过对于安卓或者非ios系统的手机来说,它们并不支持m4r格式音频,这个…

如何将mp4视频转换成m4r音频

把mp4转换成m4r格式,很明显,mp4是视频格式,m4r是音频格式,视频转音频!还可以说成是提取视频中的音频或声音,其实这种需求在用户当中还是有一些的,比如需要提取某部电脑里面某段声音,…

m4s格式转换mp3_高质量音频转换器,如何转换成mp3音频格式

日常生活中,听歌的朋友们肯定少不了在某系歌曲平台下载歌曲,不同的音质或者不同的平台都有自己特有的格式,有时我们想要在出门的时候在手机播放或者开车的时候在车载设备播放歌曲,那么有些播放器会对格式有有求,一般MP…

如何将M4A格式的音频转换为MP3格式?只需一步搞定

随着网络技术的发达,会有很多人喜欢在网上下载东西,特别是很喜欢在网上下载音乐,但是下载音乐之后发现是M4A格式?这样用起来很不方便,都喜欢MP3格式的,那么如何将M4A格式的音频转换为MP3格式?今…

m4a转如何快速转换为wav格式呢

大家都知道,华为手机的录音格式一般是m4a格式,如果我们录了一段比较有趣的音频,分享给朋友,但是对方由于手机型号不同,无法打开,那岂不是很可惜?M4A格式的音质很好,各方面都不错&…

mp3怎么转换成m4r

很多人都了解mp3格式,但是有很多人不了解m4r格式是什么,这里小编先给大家普及一下,m4r是iPhone铃声的一种音频格式。iphone系统自带来电铃声包括马林巴琴、弹簧声、颤音、弹球声、钢琴重复段、狗吠、吉他扫弦等25个铃声,格式为m4r…

如何将MP3格式音乐转换成M4R格式

MP3是非常标准的音频数字编码格式。区别于其他格式的优势在于,它可以在不降低音质的前提下,大幅的降低文件的大小。因此MP3格式应用范围极广,我们日常生活中用到的歌曲格式也多为MP3。市面上几乎所有的电子设备都可以识别并播放此种格式文件&…

android铃声格式转换,m4r格式转换器——iphone铃声制作工具(mp3转换m4r)

随着iphone现在越来越街机了。刚拿iphone的朋友都不习惯一个问题,就是iphone的铃声难设置,自带铃声只有那么几首,造成很多朋友的iphone手机铃声都是“马林巴琴”这首老相识,小编就因为一直手机默认是“马林巴琴”,结果…