2013-03-15 19 views
11

SoruPython setup.py yüklemesinin bir parçası olarak bir komut dosyasını nasıl çalıştırırım?

Ben bir senaryo kayıt setuptools ile setup.py nasıl kullanacağımı biliyorum. python setup.py install'un bir parçası olarak başka bir komut dosyasını nasıl çalıştırırım (bir make dosyasını diyelim).

Arkaplan

ben gibi bir şey kullanmak olacağını düşünün: Sadece setup() içinde bu satırı ekleyin edemez böylece

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

Ama setuptools.setup bir dicti alır/ve ben senaryoyu gerek Temel paket setup.py install tarafından yüklendikten sonra çalıştırın.

setup.py'a bir komut ekleyebileceğimi biliyorum, ancak bu komut dosyasının yükleme adımı içinde çağrılmasını istiyorum.

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

ve sadece kurulum (sonra bu bloğu yerleştirmek), ama nedense bu, ben bulmalıyız eğilimli hata da (çok pytonic bakmak ve değildir: Ben de varsayılan olabilir

sadece yerleştirerek için Bu paketin tam olarak yüklendiği yerde)

cevap

6

Mevcut yükleme komutunu kurulum araçlarından alt sınıflara ayırabilir ve istediğiniz işlevsellikle genişletebilirsiniz. Bunun yerine baskı ifadesinin

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} 

sadece Senaryonu çağırır: Kurulum fonksiyonunda komutunu yüklemek olarak Sonrasında bunu kayıt olabilirsiniz.

Lütfen python yazılımını (yumurtalar, vb.) Paketlemenin birçok yolu olduğunu unutmayın. Yalnızca yükleme adımı içinde çağırıyorsanız, betiğiniz bu yollarla çağrılmayacaktır.

İlgili konular