2011-01-27 25 views
1

我們的系統人員將源代碼捆綁到git中,並且不支持pip。 git存儲庫包含一個壓縮的tar文件。而tar文件裏有一個setup.py。我認爲在我的項目中公開這個最簡單的方法是將-e git...行添加到我的pip requirements.txt中,並在git存儲庫的根目錄中添加一個setup.py以供pip使用。最後一步是如何編寫一個將tar文件安裝爲源分佈的setup.py。如何創建一個使用tar文件的setup.py

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

在備選方案中,我可以得到一個setup.py,做這些事情:

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

回答

2

我在GIT的根寫一個僞setup.py文件去包:

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() 

它根本不使用安裝API,而是依賴於使用setup.py名稱在安裝時調用。


我可靠消息,然而,easy_install的安裝支持從一個tar文件: 'easy_install的來源/ source.tar.gz'。那麼,有沒有一個pip -e ...git指令允許從git中拉出git存儲庫並從嵌套的tar文件進行安裝?

相關問題