Python编程:entry_points将Python模块转变为命令行工具

简介: Python编程:entry_points将Python模块转变为命令行工具

要将python模块转变为命令行工具只用在 setup.py 文件中添加参数entry_points

例如:

entry_points={
    'console_scripts': [
        'pycase = pycase.case:main'
    ]
}

pycase 是自定义的参数,往后看


setup.py完整设置:

# -*- coding: utf-8 -*-


from setuptools import setup, find_packages

"""
打包的用的setup必须引入,
"""

VERSION = '0.0.1'

setup(name='pycase',
version=VERSION,
description="a command line tool for camel case",
long_description='a python command tool for camel case',
classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=;list_classifiers
keywords='pycase',
author='Peng Shiyu',
author_email='pengshiyuyx@gmail.com',
license='MIT',
packages=find_packages(),
include_package_data=True,
zip_safe=True,
install_requires=[],
entry_points={
'console_scripts': [
'pycase = pycase.case:main'
]
}
)

举个例子

1、工具说明

我要做一个的简单的命令行工具,实现驼峰命名的大小写转换

2、项目目录

$ tree
.
├── pycase
│ ├── __init__.py
│ └── case.py
└── setup.py

文件说明:

setup.py 文件和上文中的一致

__init__.py 空白文件

case.py 文件中写逻辑代码,具体就不实现了,文末github有源代码


3、调用函数

现在,我要通过命令行调用case.py 文件中的函数

$ python pycase/case.py studeng_model
StudengModel

4、打包安装

这样显得名字太长了


基于前面配置好的 setup.py 将项目打包安装

python setup.py install

5、命令行工具

$ pycase studeng_model
StudengModel

所以,setup.py 中的参数

pycase = pycase.case:main

相当于
pycase == pycase/case.py.main

其中,main 是定义好的main() 方法

另外

之前见过下面这样的执行方式

其实就是在__init__.py 通目录下新建一个__main__.py文件即可,内容

现在的文件结构为:

项目源码:

https://github.com/mouday/PyCase


参考:

如何发布一个Python命令行工具

            </div>
目录
相关文章
|
数据安全/隐私保护
自动以管理员身份运行批处理(bat)文件
自动以管理员身份运行批处理(bat)文件
1093 0
|
8月前
|
机器学习/深度学习 数据可视化 算法
Ray Flow Insight:让分布式系统调试不再"黑盒"
作为Ray社区的积极贡献者,我们希望将这些实践中沉淀的技术能力回馈给社区,推动Ray生态在实际场景中的应用深度和广度。因此,2024年底我们做了激活AntRay开源社区的决策,AntRay会始终保持与官方Ray版本强同步(即AntRay会紧随Ray官方社区版本而发布),内部Feature亦会加速推向AntRay以开源研发模式及时反哺内部业务,同时会将社区关注的Feature提交至Ray官方社区,实现内外部引擎双向价值流动。后续我们会以系列文章形式同步蚂蚁推向开源的新特性,本文将重点介绍:Ray Flow Insight —— 让分布式系统调试不再"黑盒"。
|
自动驾驶 物联网 5G
毫米波技术及其在5G网络中的应用详解
毫米波技术及其在5G网络中的应用详解
1509 3
|
监控 安全 Java
使用JMX监控Tomcat
【7月更文挑战第18天】
333 3
|
机器学习/深度学习 人工智能 算法框架/工具
探索AI在图像处理中的应用
本文深入探讨了人工智能(AI)在图像处理领域的应用,包括图像识别、图像增强和图像生成等方面。通过实际代码示例,我们将展示如何使用AI技术进行图像处理,并讨论其在不同场景下的应用。
|
负载均衡 监控 安全
Wi-Fi漫游深入解析:确保设备连接的有效策略
Wi-Fi漫游深入解析:确保设备连接的有效策略
1546 9
|
存储 前端开发 Java
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
4190 2
四步解决!OSS对象存储文件上传功能(服务端签名后直传,建议收藏)
|
机器学习/深度学习 存储 缓存
pytorch 单卡改多卡详细教程
pytorch 单卡改多卡详细教程
1023 0
pytorch 单卡改多卡详细教程
|
XML 网络协议 安全
mPaaS云平台运维系列之—移动网关网络问题排查
移动网关服务(Mobile Gateway Service,MGS)是mPaaS提供的连接移动客户端与服务端的组件产品。该组件简化了移动端与服务端的数据协议和通讯协议,能够显著提升开发效率和网络通讯效率。本章主要介绍产品常见网络问题。
1430 0
mPaaS云平台运维系列之—移动网关网络问题排查
|
数据处理
「连接平台」钉钉与电商ERP系统打通,流程超自动化助力业务起飞
数环通基于连接平台iPass能力完成了与钉钉的深度融合,打通了电商平台与企业ERP系统之间的数据桥梁,应用通过连接平台的数据处理和字段匹配做串联,实现数据线上线下自动同步与集成,提高企业运营管理效率和准确性,为企业数字化赋能升级。
1804 0