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>
目录
相关文章
|
4天前
|
存储 数据采集 JSON
python-scrapy框架(二)items文件夹的用法讲解
python-scrapy框架(二)items文件夹的用法讲解
11 0
|
4月前
|
Python
Python小姿势 - 5 tips to get the most out of list comprehensions in Python
Python小姿势 - 5 tips to get the most out of list comprehensions in Python
|
5月前
|
存储 JSON Shell
Python(十八)python字典dictionary
Python中的字典和json对象类似,都是键值对存储数据。 但是,其二者是有区别的。只是类似,并不一样。 字典和json的区别,后边会单独提到。 Python字典: 1. 字典是列表之外另一种可变容器模型,且可存储任意类型对象。 2. 字典以键值对{key:value}形式存储。 3. 键必须是唯一的,不允许同一个键出现两次。但值则不必。 **4. ** 值可以取任何数据类型,但键必须是不可变的,如字符串,数字。 **5. ** 定义字典使用一对大括号 {} 来定义。 **6. ** 字典是一个无序的数据集合,我们更关心key对应的值,而不是关心其存储的顺
55 0
|
5月前
|
索引 Python
Python(十七)python列表List(数组)(2)
四:更新列表 更新列表中的元素。 ini 复制代码 *#* *定义一个列表 *lists = ['Google', 'Runoob', 1997, 2000] *#* *打印更新前元素 *print("第三个元素为 : ", lists[2]) lists[2] = 2001 *#* *打印更新后元素 *print("更新后的第三个元素为 : ", lists[2]) 输出: 第三个元素为 : 1997 更新后的第三个元素为 : 2001 五:删除列表元素 删除元素,可以通过下标删除,也可以通过元素(指定要删除的元素)来删除 Del 关键字是可以将变量从内存
28 0
|
5月前
|
Python
Python(十七)python列表List(数组)(3)
九:列表循环 python 复制代码 list_one = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] for item in list_one: print(item) # 获取列表长度 print(len(list_one)) i = 0 # 通过数组长度遍历数组 while(i < len(list_one) ): print(list_one[i]) i += 1 十:列表的切片操作 划重点,列表的切片操作很重要 使用切片操作,切片之后,将产生一个新的列表对象 scss 复制代码 list_one =
25 0
|
5月前
|
存储 PHP C语言
Python(十七)python列表List(数组)(1)
Python的列表,实际意义上等同于PHP里边的数组。 只是叫法不一样而已。Python列表底层实现的原理其实就是一个C语言的列表。 Python的列表可存储不同类型的数据,但是其一般都用来存储相同类型的数据方便处理。 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。 序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 列表是最常用的Python数据类型,它可以作为一个方括
35 0
|
9月前
|
Python
【从零学习python 】23. Python中集合(set)的使用方法和常见操作
【从零学习python 】23. Python中集合(set)的使用方法和常见操作
78 0
|
Python
Python:peewee工具函数model_to_dict的用法参数详解
Python:peewee工具函数model_to_dict的用法参数详解
138 0
|
Python
Python编程:entry_points将Python模块转变为命令行工具
Python编程:entry_points将Python模块转变为命令行工具
99 0
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)