2013-03-15 65 views
11

问题我将如何运行脚本文件作为python setup.py安装的一部分?

我知道如何使用setup.pysetuptools注册的脚本。我将如何运行另一个脚本文件(假设make文件)作为python setup.py install的一部分。

背景

我想,我会使用类似:

os.system('make maketarget') #from somewhere in the package 

setuptools.setup接收一个字典,所以我不能只是里面添加setup()此行/我需要的脚本基本软件包安装后运行setup.py install

我知道我可以给setup.py添加一个命令,但我希望在安装步骤中调用此脚本。

我也可以默认只放置一个:

if sys.argv[-1] == 'install': 
    os.system('do something in the shell') 

,只是把这个区块的设置(后),但不知何故,这看起来不是很pytonic(也容易出错,我需要找到这个软件包的安装位置等)

回答

6

您可以从setuptools中继承现有的install命令并将其扩展为所需的功能。

from setuptools.command.install import install 

class MyInstall(install): 

    def run(self): 
     install.run(self) 
     print("\n\n\n\nI did it!!!!\n\n\n\n") 

# in the setup function: 
cmdclass={'install': MyInstall} 

取而代之的是print语句只是打电话给你的脚本:然后在设置功能安装命令就可以注册。

请注意,有很多方法打包python软件(蛋等)。如果您只在安装步骤中调用它,则不会以这些方式调用您的脚本。

相关问题