Python 如何创建使用tar文件的setup.py

Python 如何创建使用tar文件的setup.py,python,setup.py,Python,Setup.py,我们的系统人员将源代码捆绑在git中,不支持pip。git存储库包含一个压缩的tar文件。tar文件中有一个setup.py。我认为在我的项目中公开这一点最简单的方法是在我的pip requirements.txt中添加一个-e git…行,并在git存储库的根目录中添加一个setup.py供pip使用。最后一步是如何编写setup.py,将tar文件安装为源发行版 /package /SOURCES package.tar.gz /SPECS s

我们的系统人员将源代码捆绑在git中,不支持pip。git存储库包含一个压缩的tar文件。tar文件中有一个setup.py。我认为在我的项目中公开这一点最简单的方法是在我的pip requirements.txt中添加一个
-e git…
行,并在git存储库的根目录中添加一个setup.py供pip使用。最后一步是如何编写setup.py,将tar文件安装为源发行版

/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

我在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()
它根本不使用setup API,而是依赖于在安装时使用setup.py名称来获取invoke


但是,我得到可靠的消息,easy_install支持从tar文件进行安装:“easy_install SOURCES/source.tar.gz”。那么,是否有一个pip
-e…git
指令允许从git中提取git存储库并从嵌套的tar文件中安装