2013-03-15 44 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軟件(蛋等)。如果您只在安裝步驟中調用它,則不會以這些方式調用您的腳本。

相關問題