python setuptools打包

server/2025/1/24 10:12:36/

下面是一个简单的 setuptools 打包的示例,展示如何创建一个 Python 包并使用 setuptools 进行打包。

  1. 项目结构

首先,假设你的项目目录结构如下所示:

my_package/
│
├── my_package/
│   ├── __init__.py
│   └── my_module.py
│
└── setup.py
•	my_package/ 是你的包的目录。
•	my_module.py 是你要打包的模块。
•	setup.py 是用于打包的配置文件。
  1. my_module.py 示例代码

在 my_module.py 文件中写一些简单的功能,例如:

python"># my_package/my_module.pydef greet(name):return f"Hello, {name}!"
  1. setup.py 文件

创建 setup.py 文件,这是打包的配置文件,内容如下:

python"># setup.pyfrom setuptools import setup, find_packagessetup(name="my_package",  # 包名version="0.1",  # 版本号author="Your Name",  # 作者author_email="your.email@example.com",  # 作者邮箱description="A simple demo package",  # 简短描述long_description=open("README.md").read(),  # 读取长描述文件long_description_content_type="text/markdown",  # 长描述文件格式url="https://github.com/yourusername/my_package",  # 项目URL (GitHub 等)packages=find_packages(),  # 自动找到所有的包classifiers=[  # 分类信息"Programming Language :: Python :: 3","License :: OSI Approved :: MIT License","Operating System :: OS Independent",],python_requires='>=3.6',  # 兼容的 Python 版本
)
•	find_packages() 自动查找包含 __init__.py 的所有目录,标记为包。
•	long_description 是包的详细描述,通常来自 README.md 文件。
•	python_requires 指定支持的 Python 版本。
•	classifiers 是一些用于标识包的元数据,比如编程语言和许可证类型。
  1. README.md 文件(可选)

创建一个 README.md 文件,用来作为包的长描述:

python"># My PackageThis is a simple demo package for Python packaging using setuptools.
  1. 打包和安装

进入 my_package 目录并运行以下命令来打包和安装你的包。

打包:

python setup.py sdist

这会生成一个 dist/ 目录,里面会有一个 .tar.gz 文件,这就是打包好的源码分发文件。

安装:

你可以通过 pip 安装打包好的包:

pip install .

或通过生成的分发文件安装:

pip install dist/my_package-0.1.tar.gz
  1. 使用打包好的模块

你可以在安装后通过以下方式使用打包好的模块:

python">from my_package.my_module import greetprint(greet("World"))

总结

通过 setuptools 配置 setup.py 文件,并使用 find_packages() 来自动查找和打包模块,你可以轻松创建、打包和分发 Python 包。


http://www.ppmy.cn/server/160993.html

相关文章

可视化任务调度框架:15个热门.Net开源项目

今天盘点下1月份分享的15个.Net开源项目(点击标题查看详情)。 1、一个非常强大的可视化.NET开源任务调度框架 Hangfire是一个开源的.NET任务调度框架,目前1.6版本已支持.NET Core,可以用在ASP.NET应用执行多种类型的后台任务&am…

【Leetcode 热题 100】279. 完全平方数

问题背景 给你一个整数 n n n,返回 和为 n n n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如, 1 , 4 , 9 1,4,9 1,4,9 和 16 16 16 都是完…

左叶子之和(力扣404)

这道题需要将左右子树的左叶子结点之和不断返回给该左右子树的父节点,这是典型的后序遍历。如果大家对于二叉树的遍历不熟悉的话,可以先去看一下我的关于二叉树遍历的博客。否则直接看这道题是很容易懵逼的。熟悉了二叉树的遍历之后,大家可以…

ssm基于HTML5的红酒信息分享系统

SSM基于HTML5的红酒信息分享系统是一个专注于红酒领域的综合性信息平台,旨在为红酒爱好者、从业者以及普通消费者提供一个便捷的交流与获取红酒相关信息的空间。 一、系统背景与意义 随着人们生活水平的提高和消费观念的转变,红酒作为一种高雅的饮品&a…

一文了解树与森林基础

文章目录 树和森林1树的存储结构1.1双亲表示法1.2孩子表示法1.3孩子兄弟表示法 2树、森林与二叉树的转换2.1森林与二叉树的转换2.2 树与二叉树的转换 3树和森林的遍历3.1树的遍历3.2森林的遍历3.3 树和森林的遍历与二叉树的遍历关系 4树的应用——并查集4.1并查集及其相关操作4…

不使用 JS 纯 CSS 获取屏幕宽高

前言 在现代前端开发中,获取屏幕的宽度和高度通常依赖于 JavaScript。然而现代 CSS 也可以获取到屏幕的宽高,通过自定义属性(CSS Variables)和一些数学函数来实现这一目标。本文将详细解析如何使用 CSS 的 property 规则和一些数…

SpringBoot整合RabbitMQ

RabbitMQ 简介 消息中间件:它接收消息并且转发,就类似于一个快递站,卖家把快递通过快递站,送到我们的手上,MQ也是这样,接收并存储消息,再转发。 RabbitMQ在 2007 年由Rabbit科技有限公司发布&a…

C语言-运算符

1. 按位与运算符(&) 按位与运算符对两个整数的每一位执行“与”操作。只有当两个相应位都为 1 时,结果才为 1 ;否则为 0。 // 示例 int a 5; // 二进制: 0101 int b 3; // 二进制: 0011 int result a & b; …