使用具有安装后和python依赖关系的setuptools

时间:2009-08-11 18:11:12

标签: python packaging setuptools rpm

这与this question有些相关。假设我有一个我想通过rpm部署的软件包,因为我需要在安装后进行一些文件复制,并且我有一些我想要声明的非python依赖项。但是我们还说我有一些python依赖项,可以在PyPI中轻松使用。看起来如果我只是打包成一个鸡蛋,解压缩后跟python setup.py install会自动处理我的python依赖关系,代价是丢失任何安装后的功能和非python依赖。

有没有推荐的方法呢?我想我可以在预安装脚本中指定这个,但后来我进入了信息重复,并没有真正使用setuptools。

(我目前的设置涉及将install_requires = ['dependency_name']传递给setup,该python setup.py bdist_egg适用于unzip my_package.egg; python my_package/setup.py installpython setup.py bdist_rpm --post-install post-install.sh,但不适用于rpm --install my_package.rpm和{{1}} 。)

1 个答案:

答案 0 :(得分:7)

我认为最好将你的python依赖项作为RPM提供,并在RPM中声明为依赖项。如果它们在其他地方不可用,请自行创建它们,并将它们放在yum存储库中。

运行PyPI安装作为RPM安装的副作用是邪恶的,因为它不支持正确的卸载(即卸载RPM将删除你的包,但保留了依赖关系,没有适当的删除程序)。