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

问题描述 投票:0回答:2

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

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

python pip setuptools
2个回答
7
投票

通常,我会编写一个控制台驱动程序并将其放入文件中

console.py
作为
main
函数。

然后在

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)通常不关心。


0
投票
你真的在问

我如何使Python包可执行

执行此操作的方法由

__main__.py

 文件标准化。

  • 什么是 __main__.py?
如果您在包目录中创建

__main__.py

 文件,则可以使用它来定义可执行程序(包)的入口点。

然后使用

python3 -m package_name

 运行它。

目录结构应该是这样的:

package_name/ __main__.py # ... others ...
    
© www.soinside.com 2019 - 2024. All rights reserved.