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>
目录
相关文章
|
存储 XML 传感器
NB-IoT 之 CoAP 协议格式介绍 | 学习笔记
快速学习 NB-IoT 之 CoAP 协议格式介绍
NB-IoT 之 CoAP 协议格式介绍 | 学习笔记
|
Kubernetes 监控 Docker
Docker Compose与Kubernetes的比较
【6月更文挑战第11天】本文探讨了Docker Compose与Kubernetes在容器编排中的角色。Docker Compose适合简单部署和开发环境,提供一键启动多容器的便利;而Kubernetes则适用于大规模生产环境,具备自动化运维、集群管理和负载均衡等功能。Python在容器编排中扮演重要角色,示例代码展示了如何使用Python的Docker SDK和Kubernetes客户端进行部署、扩展和日志管理。通过Python,开发者可以实现自定义监控、自动水平扩展和实时日志监控等高级功能,增强了容器编排的灵活性和自动化。
Docker Compose与Kubernetes的比较
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
ICLR 2025 | EDiT:一种基于 Local SGD 策略的大模型高效分布式训练方法
蚂蚁 AI Infra 团队在深度学习最核心之一的训练框架方向上持续投入与创新,实现了提升资源利用率、加速训练、提升训练稳定性等目标。我们提出的 EDiT 方法,即为其中一项工作。
|
数据可视化 搜索推荐 物联网
室内定位新突破:基于3D可视化与iBeacon技术的商场导航营销系统
**维小帮商场导航系统利用3D GIS、iBeacon定位、VR及物联网技术,提供3D导航、AR实景指引、设施查找及位置分享功能,提升顾客体验,增强商场品牌,推动经济效益增长。通过精准路径规划和沉浸式导航,用户能轻松找店,商场则塑造了智能形象,促进了交易量。**
458 1
室内定位新突破:基于3D可视化与iBeacon技术的商场导航营销系统
|
并行计算 PyTorch 调度
Transformers 4.37 中文文档(十九)(1)
Transformers 4.37 中文文档(十九)
422 1
|
SQL 数据库连接 API
SqlAlchemy 2.0 中文文档(五十五)(3)
SqlAlchemy 2.0 中文文档(五十五)
519 1
|
Kubernetes 容器 Perl
Kubernetes----Pod配置容器启动命令
Kubernetes----Pod配置容器启动命令
1165 0
|
缓存 网络协议 虚拟化

热门文章

最新文章