python打包两种方式:setup.py、pyproject.toml;entry_points、project.scripts 可执行的命令行

参考:
https://blog.csdn.net/qq_38844437/article/details/126628564
在这里插入图片描述

setup.py

https://click.palletsprojects.com/en/7.x/setuptools/#setuptools-integration

学习写法:https://github.com/myshell-ai/MeloTTS/blob/main/setup.py

yourscript.py:

import click@click.command()
def cli():"""Example script."""click.echo('Hello World!')

setup.py:

from setuptools import setupsetup(name='yourscript',version='0.1',py_modules=['yourscript'],install_requires=['Click',],entry_points='''[console_scripts]yourscript=yourscript:cli''',
)

pyproject.toml

参考:https://blog.csdn.net/qq_38844437/article/details/126628564

学习写法yolo:https://github.com/ultralytics/ultralytics/blob/main/pyproject.toml
https://packaging.python.org/en/latest/guides/writing-pyproject-toml/

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
#...
[project]
# ...
name = "apap"
version = "1.0"
requires-python = ">=3.8"
authors = [{ email = "yangtze_lv@163.com" },{ name = "Wenchao Lv" }
]
dependencies = ["setuptools==65.3.0","wheel==0.37.1","opencv-contrib-python==4.5.5.62","opencv-python==4.5.5.62","matplotlib==3.5.3","numpy==1.23.2","matplotlib==3.5.3"
]
# ...
[tool.setuptools.packages.find]
where = ["src"]
include = ["apap"][project.scripts]
apap = "apap.main:main"

在这里插入图片描述

entry_points、project.scripts 可运行的命令行

前面打包里setup.py设置了entry_points;pyproject.toml设置了project.scripts模块;安装后就可以有将Python模块转变为命令行工具

参考:https://blog.51cto.com/mouday/3040500

yolo ***
tts ***
apap ****

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 994 腐烂的橘子

前几天写过一篇BFS比较基础版的遍历 【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点 ,可以先看一下再看本文 用 BFS 算法遍历二维数组 遍历二维矩阵:二维矩阵中的一个位置看做一个节点,这个节点的上下左右四个位置…

ROS2中std_msgs/msg/Header 数据含义及使用

ROS2中std_msgs/msg/Headerr 数据含义及使用 ROS官方消息说明数据说明使用ros2标准的Header案例代码解释测试结果 ROS官方消息说明 ROS2中std_msgs消息包含类型 https://docs.ros2.org/latest/api/std_msgs/msg/std_msgs/msg/Header Message std_msgs/msg/Header数据格式&…

mybatis不重复列插入例子详细说明

之前有做过不重复列插入的需求,当时是 在插入时判断 对应的列在数据库中有没有对应的数据 有则返回false 无则插入,但是这加大了数据库的查询负担 也增加了插入的时间,故今天研究一下 使用sql来简化了这一点 使用的知识点是 daul表 insert i…

紫光展锐T618_4G安卓核心板方案定制

紫光展锐T618核心板是一款采用纯国产化方案的高性能产品,搭载了开放的智能Android操作系统,并集成了4G网络,支持2.5G5G双频WIFI、蓝牙近距离无线传输技术以及GNSS无线定位技术。 展锐T618核心板应用旗舰级 DynamlQ架构 12nm 制程工艺&#x…

3DEXPERIENCE Works八大核心优势分析

云技术正在加速普及,助力各行各业数字化转型。根据IDC 2023年12月发布的报告,2023年全球云计算市场规模达到3329亿美元,同比增长19.4%。其中,公有云市场规模达到2587亿美元,同比增长21.5%;私有云市场规模达到742亿美元…

想要高薪还想要低要求?想转行做Python自动化测试,我该怎么做?

前言 最近小编连续收到好几个粉丝的私信询问:我年纪上来了,原来的行业做不下去了,想转行还能行吗?我是女生,计算机专业快毕业了,但是不喜欢做开发怎么办?我对编程行业感兴趣,想学编…

算法:滑动窗口

文章目录 例题1:长度最小的子数组例题2:无重复字符的最长子串例题3:最大连续1的个数 III例题4:将 x 减到 0 的最小操作数例题5:水果成篮例题6:找到字符串中所有字母异位词例题7:串联所有单词的子…

如何开发分销商城小程序呢_打造分销利器

打造分销利器,揭秘如何开发一款成功的分销商城小程序 在移动互联网时代,小程序以其轻便、快捷的特点,成为了连接用户与服务的桥梁。其中,分销商城小程序更是受到了广大商家的青睐。那么,如何开发一款成功的分销商城小…

IoC底层核心原理与AOP

1.IoC底层核心原理 1.核心接口 BeanFactory 提供bean的基本操作 bean获取 按名称获取 按类型获取 bean供应商 bean基本信息 是否存在 是否单例 类型获取 类型检测(类型是否匹配) 别名获取 HierarchicalBeanFactory 提供bean分层结构,提出…

【机器学习】生成对抗网络GAN

概述 生成对抗网络(Generative Adversarial Network,GAN)是一种深度学习模型架构,由生成器(Generator)和判别器(Discriminator)两部分组成,旨在通过对抗训练的方式生成逼…

单调栈的理解

单调栈的理解 核心代码场景思考 完整代码环形数组循环数组 单调栈&#xff1a; 单调递增或 单调递减的栈 核心代码 while (!s.empty()&&s.peek()<nums[i]){s.pop(); } s.push(nums[i]);将要放入的元素&#xff0c;与栈内元素依个比较&#xff0c;小于的都出栈&am…

即时设计-高效易用的界面工具

界面工具是设计师的得力助手&#xff0c;为设计师快速创建精美易用的用户界面提供了丰富的功能和直观的界面。在众多的界面工具中&#xff0c;有的支持预设模板、图标库和样式库&#xff0c;有的更注重原型和互动。如何选择优秀的界面工具&#xff1f;这里有一个高效易用的界面…