【发布时间】:2026-02-10 16:25:01
【问题描述】:
假设我有一个大型 Python 函数库,我希望这些函数(或其中的一些函数)可以作为 Bash 中的命令使用。
首先,不考虑 Bash 命令选项和参数,如何使用一个单词 Bash 命令获得包含多个函数的 Python 文件的函数?我不想通过命令“套件”的命令获得这些功能。所以,假设我在这个 Python 文件中有一个名为 zappo 的函数(比如,名为 library1.py)。我想使用像 zappo 这样的单字 Bash 命令调用这个函数,not 像 library1 zappo 这样的。
其次,如何处理选项和参数?我在想一个不错的方法是捕获 Bash 命令的所有选项和参数,然后在 Python 函数中使用它们,使用 docopt 解析 * 在函数级别```。
【问题讨论】:
-
你知道所有函数的名称吗?还是您想让
bash开始搜索python 文件以找到其中包含命令的文件? -
你好。感谢您对此的想法。我倾向于运行一个 Python 脚本来更改 Bash 环境,以便使用单个命令在 Bash 环境中使用 Python 脚本中定义的一组函数。
-
编写短脚本来执行此操作很常见。
zappo可以是导入library1并调用函数的python 脚本。这是可以的还是被禁止的“命令套件”的一部分? -
规范的方法是创建使用
argparse的 CLI 脚本。如果您的代码在包中,setuptools可以自动为您的函数创建 CLIentry_points。 -
@d3pd:您不能从子 shell 修改 bash 环境。当然,您可以使用 python 程序生成一个 bash 脚本文件,但您仍然需要在 bash 初始化中安排该文件的源代码。
标签: python bash function interface command