【问题标题】:How to package a Python daemon with setuptools如何使用 setuptools 打包 Python 守护程序
【发布时间】:2012-04-01 02:55:28
【问题描述】:

如何使用 setuptools 打包 Python 应用程序,以便在安装时(例如通过 setup.py 或 pip)将守护程序脚本放置在适当的位置、启动它并将其标记为在启动时自动启动?

就我而言,我的代码仅适用于 Linux,因此我只关心在 Linux 环境(特别是 Ubuntu)中安装守护进程。

我找到了 several posts describing 如何轻松创建 Python 守护进程,但我似乎找不到任何描述如何在生产环境中安装它们以便处理它们的内容与任何其他正常的守护程序或服务一样。

我知道 Ubuntu 和其他一些发行版将它们的守护进程保存在 /etc/init.d 中,并且我知道如何使用 setuptools 将文件复制到文件系统上的特定位置,因此将我的脚本复制或符号链接到是否安全/etc/init.d 然后运行 ​​chkconfig 来设置它的运行时,或者有没有更安全的分发中立方式来安装守护进程?

【问题讨论】:

    标签: python linux daemon setuptools python-daemon


    【解决方案1】:

    通过为发行版创建适当的包(在 Ubuntu 中为 .deb)会更好地处理此问题,因为您无法保证跨发行版的启动脚本的位置。例如,arch linux 使用 /etc/rc.d/。此外,复制到这样的位置将需要 root 访问权限(我认为安装 python 包不一定需要),并且在卸载时可能不容易恢复。

    我建议您创建一个普通的 setupttools 安装,然后将其打包到一个带有 /etc/init.d 链接的 deb 中。

    【讨论】:

    • 有趣。虽然我总是必须sudo 来安装 Python 包,所以我不认为 root 是个问题。
    • 我可能是错的,但我认为,至少在 python3 中,您可以安装到用户特定的位置(例如 ~/.python 或其他东西)
    • 你可以随时使用 virtualenv 并在任何你想要的地方安装包
    • @Dikei:这可能是我的想法。
    • 你会怎么做呢?
    猜你喜欢
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2010-10-06
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多