如何将命令行工具添加到 python 包
How to add command line tool to python package
我编写了一个名为 fcards 的简单包,目前在 PyPI 上。该软件包提供了一个基于 curses 的界面,用于创建和练习闪存卡,现在,为了 运行 它,用户必须键入 "python -m fcards.fcards"。我想知道如何制作它以便用户可以简单地键入 "fcards" 到 运行 应用程序。
我已经尝试在我的 setup.py 文件的设置函数中使用 "scripts" 和 "entry_points" 参数,但到目前为止,在所有平台上都没有一致的效果。
通常,我写一个控制台驱动程序并将其作为main
函数放在文件console.py
中。
然后在setup.py
:
entry_points={
'console_scripts': ['<name> = <name>.console:main'],
},
其中 <name>
是模块的名称。这在类 UNIX 平台上开箱即用。它也可以在 ms-windows.
上使用 Anaconda Python 发行版
在 ms-windows 上 console_scripts
和 gui_scripts
之间的区别是 重要 ,因为后者必须与另一个 python 二进制。这是通过给他们扩展名 pyw
而不是 py
来完成的。类 UNIX 平台(我猜包括 macOS)通常不关心。
我编写了一个名为 fcards 的简单包,目前在 PyPI 上。该软件包提供了一个基于 curses 的界面,用于创建和练习闪存卡,现在,为了 运行 它,用户必须键入 "python -m fcards.fcards"。我想知道如何制作它以便用户可以简单地键入 "fcards" 到 运行 应用程序。
我已经尝试在我的 setup.py 文件的设置函数中使用 "scripts" 和 "entry_points" 参数,但到目前为止,在所有平台上都没有一致的效果。
通常,我写一个控制台驱动程序并将其作为main
函数放在文件console.py
中。
然后在setup.py
:
entry_points={
'console_scripts': ['<name> = <name>.console:main'],
},
其中 <name>
是模块的名称。这在类 UNIX 平台上开箱即用。它也可以在 ms-windows.
在 ms-windows 上 console_scripts
和 gui_scripts
之间的区别是 重要 ,因为后者必须与另一个 python 二进制。这是通过给他们扩展名 pyw
而不是 py
来完成的。类 UNIX 平台(我猜包括 macOS)通常不关心。