如何使用setuptools打包Python守护程序

如何使用setuptools打包Python守护程序,python,linux,daemon,setuptools,python-daemon,Python,Linux,Daemon,Setuptools,Python Daemon,如何使用setuptools打包Python应用程序,以便在安装时(例如通过setup.py或pip),它将守护程序脚本放置在适当的位置,启动它,并将其标记为在启动时自动启动 在我的例子中,我的代码只适用于Linux,所以我只关心在Linux环境(特别是Ubuntu)中安装守护进程 我已经找到了如何轻松创建Python守护进程,但我似乎找不到任何描述如何在生产环境中安装它们,以便将它们视为任何其他正常守护进程或服务的内容 我知道Ubuntu和其他一些发行版将它们的守护进程保存在/etc/init

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

在我的例子中,我的代码只适用于Linux,所以我只关心在Linux环境(特别是Ubuntu)中安装守护进程

我已经找到了如何轻松创建Python守护进程,但我似乎找不到任何描述如何在生产环境中安装它们,以便将它们视为任何其他正常守护进程或服务的内容


我知道Ubuntu和其他一些发行版将它们的守护进程保存在/etc/init.d中,我知道如何使用setuptools将文件复制到文件系统上的特定位置,所以将我的脚本复制或符号链接到/etc/init.d,然后运行chkconfig来设置它的运行时是否安全,或者是否有一种更安全的、与发行版无关的安装守护程序的方法?

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


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

。虽然我总是必须
sudo
才能安装Python软件包,所以我不认为成为root用户是个问题。我可能错了,但我认为,至少在python3中,您可以安装到用户特定的位置(例如~/.Python或其他)无论您在哪里,都可以使用virtualenv并安装软件包want@Dikei当前位置这可能就是我想的。你到底会怎么做呢?