【问题标题】:How to ditribute my Unix application?如何分发我的 Unix 应用程序?
【发布时间】:2026-02-22 08:20:05
【问题描述】:

我为 Unix 系统创建了一个命令行 python 工具。

我希望我的脚本可以像任何 Unix 命令一样在任何地方执行。一种解决方案是使我的脚本可执行并将其移动到 /usr/bin。

但是脚本可以和外部文件一起使用,我想把这些文件都用我的脚本移动到/usr/bin是一个坏习惯,因为以后很难一个一个地删除它们。

我应该把我的应用程序的目录放在哪里?如何将主脚本添加到 PATH 中,以便从任何地方执行它?

然后我想创建一个可以将我的文件移动到正确位置的包,并在用户想要卸载我的应用程序的情况下删除它们。 我不知道该怎么做。

谢谢。

【问题讨论】:

    标签: python unix package installation


    【解决方案1】:

    有许多分发 Linux 应用程序的方法。 这取决于您使用的发行版,因为它们并不都使用相同的包管理器。例如,您将为 Debian、Ubuntu 及其衍生产品创建一个 .deb 包,为 Archlinux 等创建一个 Arch 包…… 然后,您可以与任何人共享该软件包,让他们安装您的工具。

    但是,由于您的工具是用 Python 编写的,因此您也可以制作一个 Python 包。然后你可以将它上传到Python Package Index,让任何人使用 python 的 pip 包管理器安装它。

    要创建 python 包,您需要创建一个名为 setup.py 的文件,并从中调用 setuptool 包中的 setup 方法。 您可能想阅读有关编写此类脚本的 python 文档:https://setuptools.readthedocs.io/en/latest/setuptools.html 您可能对以下部分特别感兴趣:

    如果您的操作正确,setuptools 将负责将您的脚本及其文件安装在 PATH 中的某个位置,以便可以从命令行执行。

    【讨论】:

    • 非常感谢您的回答,我将使用python包。
    【解决方案2】:

    您应该使用setuptools 分发您的应用程序,创建一个setup.py 文件来配置其设置和安装。

    可以使用console_scripts 选项传递二进制文件,而可以使用package_data 传递数据文件。

    【讨论】:

    • 感谢您的回答。我会看看这些!
    最近更新 更多