gpt4 book ai didi

python - 如何从 Python 程序中创建自定义系统命令?

转载 作者:行者123 更新时间:2023-12-01 05:49:25 24 4
gpt4 key购买 nike

如果我有一个用 Python 编写的命令行程序(特别是使用 docopt 我认为它使用 argparse),并且我想将其作为 my-program command1 args 而不是 运行>python my-program.py command1 args,我该怎么办?目前,这适用于基于 Debian 的操作系统(例如 Ubuntu)。

我通常将我的模块制作为一个包,因此我已经有了 setup.py 但这并没有授予我免费的命令。

谢谢!

<小时/>

编辑

@pyrospade 在下面提供了一个非常好的链接。我将分享我的结果。

假设我们有

top-level-directory
setup.py
package/
__init__.py
cli.py

如果您想在 shell 中访问 cli.py,可以使用 scripts=['package/cli.py']

如果你想以my-cli运行,你可以使用

entry_points={
'console_scripts':
['my-cli=package.cli:main']
}

由于我使用docopt,所以我有这个

def dispatcher(...)
def fun1(....)


def main():
arguments = docopt(COMMAND, version="xxxx")
dispatcher(arguments)

if __name__ == '__main__':
main()

您甚至可以通过说 ['my-cli=package:main'] 将其放在 __init__.py 下,但同样,您需要一个名为 的函数main() 。但您可以将其命名为任何您想要的名称。只是说一下。

最佳答案

确保您的程序有 shebang line在顶部:

#!/usr/bin/python

使文件可执行:

chmod a+x my-program.py

使用所需的命令名称建立链接:

ln -s my-program.py /usr/local/bin/my-program

关于python - 如何从 Python 程序中创建自定义系统命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com