【问题标题】:How to include post install script in python setuptools如何在 python setuptools 中包含安装后脚本
【发布时间】:2016-06-24 16:39:24
【问题描述】:
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 就应该执行。 它不工作。 还有其他方法不起作用吗?

【问题讨论】:

  • 如果答案帮助您解决了问题,您应该回来支持/接受它。否则,请就答案不适用的原因或如何改进发表评论。

标签: python setuptools rpmbuild buildpack


【解决方案1】:

你可以运行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

【讨论】:

    猜你喜欢
    • 2011-06-19
    • 2013-12-15
    • 2013-07-22
    • 2014-07-20
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2016-06-04
    相关资源
    最近更新 更多