2011-01-27 6 views
1

Nos responsables systèmes regroupent la source dans git et ne supportent pas pip. Le dépôt git contient un fichier tar compressé. Et le fichier tar contient un fichier setup.py. Je pense que la façon la plus simple d'exposer cela dans mon projet est d'ajouter une ligne -e git... à mon fichier pip requirements.txt et d'ajouter un fichier setup.py à la racine du dépôt git pour pouvoir l'utiliser. La dernière étape consiste à écrire un fichier setup.py qui installe un fichier tar en tant que distribution source.Comment créer un fichier setup.py qui consomme un fichier tar

/package 
    /SOURCES 
     package.tar.gz 
    /SPECS 
     site-specific-server-installation-script 

Subsidiairement, je pouvais obtenir un setup.py qui fait ces choses:

cd package/SOURCES 
tar xzfv package-1.0.6.tar.gz 
cd package-1.0.6/ 
python setup.py 

Répondre

2

Je suis allé avec l'écriture d'un fichier pseudo setup.py dans la racine du git package:

import os 
import subprocess 

if __name__ == '__main__': 
    package_name = 'package' 
    short_package_name = 'package-1.0.6' 

    print "Changing to SOURCES" 
    os.chdir('SOURCES') 

    tar_file = '.'.join([short_package_name, 'tar', 'gz']) 
    print "Untarring ", tar_file 
    p = subprocess.Popen(['tar', 'xzfv', tar_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
    output, errors = p.communicate() 

    print "Changing to ", short_package_name 
    os.chdir(short_package_name) 

    print "Setting up source distribution" 
    p = subprocess.Popen(['python', 'setup.py', 'install'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
    output, errors = p.communicate() 

Il n'utilise pas du tout l'API de configuration, mais repose sur l'utilisation du nom setup.py pour obtenir invoquons lors de l'installation en temps.


Je suis source sûre, cependant, que easy_install prend en charge l'installation d'un fichier tar: 'easy_install SOURCES/source.tar.gz'. Donc, y a-t-il une directive pip -e ...git qui permet de tirer un dépôt git depuis git et de l'installer à partir d'un fichier tar imbriqué?