Python编程:entry

    xiaoxiao2025-07-25  14

    要将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?:action=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() 方法

    另外

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

    $ python -m pycase student_model StudentModel

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

    # -*- coding: utf-8 -*- from .case import main if __name__ == '__main__': main()

    现在的文件结构为:

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

    项目源码: https://github.com/mouday/PyCase

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

    最新回复(0)