【问题标题】:How to add command line tool to python package如何将命令行工具添加到python包
【发布时间】:2019-08-11 19:40:45
【问题描述】:

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

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

【问题讨论】:

  • 对于 Windows,您可以将其设为运行您的命令的 .bat 文件。不过他们必须运行fcards.bat
  • 到目前为止,在所有平台上都没有一致的工作。当您添加入口点时,什么没有工作?

标签: python pip setuptools


【解决方案1】:

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

然后在setup.py:

entry_points={
    'console_scripts': ['<name> = <name>.console:main'],
},

其中&lt;name&gt; 是模块的名称。这在类 UNIX 平台上开箱即用。它还可以在 ms-windows 上使用 Anaconda Python 发行版。

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

【讨论】:

  • 感谢这完美的工作(在 linux 和 windows 上)。我只是包装了我的代码部分,它设置变量并将它们提供给我的主函数在它自己的函数中,并将控制台脚本指向那个。
猜你喜欢
  • 2017-09-05
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多