import os
from setuptools import setup
from distutils.command.install import install as _install
def _post_install(dir):
from subprocess import call
call([sys.executable, 'post_script.py'],
cwd=os.path.join(dir, 'script_folder'))
class install(_install):
def run(self):
_install.run(self)
self.execute(_post_install, (self.install_lib,),
msg="Running post install task")
VERSION = '123'
setup(name='XXXX',
description='hello',
url='http://giturl.com',
packages=['package_folder'],
cmdclass={'install': install},
package_data={
'package_folder': [
'*.py',
'se/*pp'
],
},
)
# 基本上,一旦我安装了正在构建的rpm,就应该执行postscript。 它不起作用。 这样的任何其他方法都不起作用?
答案 0 :(得分:2)
你可以运行python setup.py bdist_rpm --post-install=<script name>
这将创建一个rpm,它将在正常rpm创建完成后运行您提供的脚本内容。
如果您想在setup.py中执行此操作,可以传递
setup(
...
options = {'bdist_rpm':{'post_install' : '<post_install script name>'}},
...
)
这只会影响bdist_rpm,因此只会影响您使用python setup.py bdist_rpm
创建的rpm