python 自定义命令(entry_points)以及开发第三方库setuptools打包

本文主要是介绍python 自定义命令(entry_points)以及开发第三方库setuptools打包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

突然想知道类似django-admin、you-get这种不用Python执行的自定义命令怎么实现的的,查了一下setuptools打包时配置一下entry_points可以实现。

工程结构

setup.py代码:

#setup.pyfrom setuptools import setupsetup(name = "setuptoolsdemo",version = "1.0.0",author = "wangjinyur",author_email = "wangjinyuxxx@gmail.com",description = ("An demonstration of setuptools-demo."),url = "http://www.baidu.com",packages=['src'],entry_points={'console_scripts': ['setup-func=src.appdemo:hello_setuptools'],}
)

setup-func就是我配置的自定义命令,打包完成后直接在shell中执行 setup-func,就相当于执行appdemo模块下的hello_setuptoolsh函数。

appdemo.py代码:

def hello_setuptools():print('hello_setuptools')

 

执行下面命令: 

python setup.py bdist_wheel 

生成一堆文件:

 

 再执行:

pip install dist/setuptoolsdemo-1.0.0-py3-none-any.whl

将自定义的setuptoolsdemo包安装到Python环境中

ipython中导入执行一下,注意导入的是src,而不是包名setuptoolsdemo

In[2]: from src.appdemo import hello_setuptools
In[3]: hello_setuptools()
hello_setuptools 

shell中执行一下setup-func命令:

(python3.7.3) ➜  setup-func
hello_setuptools 

可以看到成功打印出了 hello_setuptools。

参考:https://juejin.im/post/5d46eb4bf265da03ef79f7e3

官方文档太长了吧。。。

这篇关于python 自定义命令(entry_points)以及开发第三方库setuptools打包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049208

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查