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>
目录
相关文章
|
弹性计算 对象存储 CDN
2023年阿里云流量计费标准价格表
2023年阿里云流量计费标准价格表,阿里云服务器公网带宽计费模式按固定带宽和按使用流量哪个划算?阿里云百科以北京地域为例,按固定带宽计费1M带宽一个月23元,按使用流量计费1GB流量0.8元,如果云服务器带宽使用率低于10%,那么首选按使用流量计费,如果带宽实际利用率较高的话,按固定带宽计费更划算一些
5500 0
2023年阿里云流量计费标准价格表
|
存储
Qt编译出现cc1plus.exe: out of memory allocating 65536 bytes问题
Qt编译出现cc1plus.exe: out of memory allocating 65536 bytes问题
841 0
|
弹性计算 固态存储 调度
2024年阿里云服务器配置选择指南,新手整理
阿里云服务器配置选择指南:个人用户推荐轻量应用服务器或ECS通用算力型u1,适合小型网站和轻量应用。企业用户应选择企业级独享型如ECS计算型c7、通用型g7,保证高性能计算需求。配置选择要考虑CPU内存比例、公网带宽和系统盘。轻量服务器提供2核2G3M和2核4G4M选项,ECS实例则有多种规格以适应不同业务场景。公网带宽建议至少5M,系统盘可选高效云盘、SSD或ESSD。详细信息见[阿里云服务器产品页](https://www.aliyun.com/product/ecs)。
1535 3
|
Java Maven Kotlin
在 build.gradle.kts 添加 阿里云仓库
在 build.gradle.kts 添加 阿里云仓库
2619 0
|
Android开发
libxxx.so- text relocations问题的终极解决方案
问题表现形式 错误或警告日志 当targetSdkVersion>=23且使用debug签名时,在6.0+的Android设备上运行App会输出以下错误Log: E/linker: /data/app/packagename/lib/arm/libxxx.
3392 0
|
JSON 数据格式
QT 给http服务器发送GET/POST请求并接收返回值
QT 给http服务器发送GET/POST请求并接收返回值
QT 给http服务器发送GET/POST请求并接收返回值
|
Apache 开发工具 数据安全/隐私保护
Python 搭建私有 PyPI 仓库不完全指南
Python 搭建私有 PyPI 仓库不完全指南
6012 0
|
Linux
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
1646 0