是否有惯用的方法使用setuptools安装systemd单元?

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

我正在分发一个可以导入并用作库的模块。它还带有一个可执行文件-通过console_scripts安装-供人们使用。

可以将该可执行文件作为系统服务(Type=simple)启动,以向系统提供守护程序。系统服务需要在它们的ExecStart行中引用

绝对路径

,所以我需要弄清楚console_script的安装位置。[使用其他构建系统,例如CMake,自动工具或Meson,我可以直接访问前缀,然后使用configure_file(介子)之类的东西替换@PREFIX@中的foo.service.in,然后将生成的单元安装到$prefix/lib/systemd/system/

我只是不知道如何使用setuptools来做到这一点。在setup.py中,sys.prefix设置为

python的前缀

,这不是同一回事。我尝试覆盖install_datainstall,但是这些方法都有各种问题,例如通过pip构建轮子时会损坏,或者在卸载时将文件留在原处。 (我可以确定的是,当我们不在系统范围内安装时,不安装该服务;如果前缀不是/usr/usr/local,则systemd将无法找到它。)有人指着我at a website which says that you're not supposed to do this with setuptools

顺便说一下,数据文件的封装意味着您实际上无法将数据文件安装到用户计算机上的任意位置;这是一个功能,而不是错误。

听起来我只是在这里反对。我真的在寻找指针或示例来告诉我我在这里应该做什么。如果那是“不要使用setuptools”,那就很好-但是欢迎您提供有关首选内容的建议。

我正在分发一个可以导入并用作库的模块。它还带有一个通过console_scripts安装的可执行文件,供人们使用。该可执行文件也可以以...

python pip setuptools distutils
1个回答
1
投票
我会说不要为此使用

setuptools

© www.soinside.com 2019 - 2024. All rights reserved.