如何将命令行工具添加到python包

rzr*_*shr 4 python pip setuptools

我写了一个名为 fcards 的简单包,目前在 PyPI 上。该软件包提供了一个用于创建和练习闪存卡的基于 curses 的界面,现在,为了运行它,用户必须键入“python -m fcards.fcards”。我想知道如何制作它,以便用户只需键入“fcards”即可运行该应用程序。

我已经尝试在我的 setup.py 文件中的 setup 函数中使用“scripts”和“entry_points”参数,但到目前为止没有任何东西在所有平台上都能一致地工作。

Rol*_*ith 5

通常,我编写一个控制台驱动程序并将其console.py作为main函数放在一个文件中。

然后在setup.py

entry_points={
    'console_scripts': ['<name> = <name>.console:main'],
},
Run Code Online (Sandbox Code Playgroud)

哪里<name>是模块的名称。这在类 UNIX 平台上开箱即用。它还可以在 ms-windows 上使用 Anaconda Python 发行版。

在 ms-windows 上,console_scripts和之间的区别gui_scripts重要,因为后者必须与另一个 python 二进制文件相关联。这是通过给他们扩展名pyw而不是py. 类 UNIX 平台(包括 macOS,我猜)通常不关心。