python - 从 pip 安装后没有 python 的 CLI 应用程序

标签 python command-line-interface

我见过一些 python 包的示例,这些包在从 pypi 之类的东西安装后,具有与该工具关联的 CLI。

两个示例:rasa(例如rasa init)或streamlit(例如streamlit hello)。

我有兴趣为我自己的包探索这个,我的要求是我不想在我的命令前面加上python。例如,如上所示的 rasa init,而不是 python rasa init,但不可否认,我不知道这是如何在幕后发生的。

最佳答案

entry_points or scripts用于此。

这是 streamlitsetup.py 的相关部分:

setuptools.setup(
    ...
    entry_points={"console_scripts": ["streamlit = streamlit.cli:main"]},
    ...
    # For Windows so that streamlit * commands work ie.
    # - streamlit version
    # - streamlit hello
    scripts=["bin/streamlit.cmd"],
)

有趣的是,一些消息来源似乎声称 entry_points 在 Windows 上不起作用,而另一些消息来源则声称它是 scripts 在 Windows 上不起作用。就我个人而言,我一直在使用 entry_points,它在 Windows 10 和 Linux 上都适用。

关于python - 从 pip 安装后没有 python 的 CLI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66520880/

相关文章:

python - 对输入中的字符串使用递归时进行计数

python - 使用python在高斯过程回归中对训练数据集进行数据增强

Python -c bash swtich 换行符

python - 我应该在哪里实现flask自定义命令(CLI)

java - 在运行时启用或禁用选项

python - UnicodeEncodeError : 'ascii' codec can't encode character in position 0: ordinal not in range(128)

python win32com "PumpWaitingMessages()"处理

python - 在python中,如何将类对象转换为dict

php - 在 PHP 中打印到打印机

azure - 如何修复 AZ CLI 错误 "The Resource ' 。 .' under resource group '。 .' was not found"?