1

我们的系统人员将源代码捆绑在 git 中,并且不支持 pip。git 存储库包含一个压缩的 tar 文件。并且 tar 文件中有一个 setup.py 。我认为在我的项目中公开它的最简单方法是在-e git...我的 pip requirements.txt 中添加一行,并在 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
4

1 回答 1

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 SOURCES/source.tar.gz”。那么,是否有一个 pip-e ...git指令允许从 git 中提取 git 存储库并从嵌套的 tar 文件中安装?

于 2011-01-27T14:44:21.670 回答