要将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
参考:
</div>