2016-03-10 58 views
3
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' 
      ], 
     }, 
) 

# 基本上,postscript应该在我安装正在构建的rpm时执行。 它不工作。 任何其他方法,因为这是行不通的?如何在python setuptools中包含post安装脚本

回答

2

您可以运行python setup.py bdist_rpm --post-install=<script name> 这将创建一个rpm,它将运行在正常创建完成后提供的脚本内容。

如果你想这样做在你的setup.py你可以沿着

setup( 
... 
options = {'bdist_rpm':{'post_install' : '<post_install script name>'}}, 
... 
) 

这只会影响bdist_rpm通过,因此只在转你python setup.py bdist_rpm

创建