click旨在帮助创建复杂而简单的 CLI 工具 一样。然而,它设计的力量在于能够任意嵌套 系统在一起。例如,如果你曾经使用过Django,你将 已经意识到它提供了一个命令行实用程序,但 Celery 也是如此。 当将 Celery 与 Django 一起使用时,有两个工具需要与之交互 彼此并交叉配置。
在两个独立的 Click 命令行实用程序的理论世界中,它们 可以通过将一个嵌套在另一个内部来解决此问题。例如, Web 框架还可以加载消息队列框架的命令。
click的文档: Welcome to Click — Click Documentation (8.1.x) (palletsprojects.com)
基于python语言开发命令行工具
相比于写shell,或者使用C,C++等语言写命令行工具,python写的话,好像更简单,首先,python还是很容易上手学习的。之前很困惑大家是怎么写的那么复杂的命令行程序的,后来看了一个视频才领悟过来。其实并不需要学习那么多语言来写一个命令行(exe)程序,只要python就可以了。
主要步骤如下:
- 创建setup.py
from setuptools import setup
setup(
name="SayHello",
version="0.1",
py_modules=["SayHello"],
include_package_data=True,
install_requires=["click"],
entry_points="""
[console_scripts]
sayhello=SayHello:SayHello
""",
)
# 关于setup.py 文件编写: [花了两天,终于把 Python 的 setup.py 给整明白了 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/276461821)
- 创建SayHello.py
(这里使用里click包,网上介绍说这个包很适合开发命令行程序。安装Flask时候,会顺便带上)
import click
@click.command()
@click.option('--name', prompt='内容', help='请输入内容.')
def SayHello(name):
click.echo('Hello %s!' % name)
-
安装:
这里临时使用 “ pip install -e . " 的方式临时安装下。 (进入目录后,执行这个命令,用于开发中,临时安装调试) -
测试:
命令行输入: sayheloo
> 内容: admin
> Hello admin!
这个时候,输入上面自定义的命令,就可以执行了。在不同的平台上,都会编译出相关可执行的脚本。
5.打包
参考:https://zhuanlan.zhihu.com/p/276461821
python setup.py sdist # 打包成tar.gz
python setup.py bdist # 一次性打包出多种格式来
python setup.py bdist_wininst
python setup.py bdist_rpm
python setup.py bdist_egg
网友评论