1

我正在使用 pip 来部署我的包,并且我希望它在我升级包时递归地拉出我的包的子模块,有人知道我该怎么做吗?

4

1 回答 1

1

每当 pip 更新我的 repo 时,它会运行 setup.py 并以“develop”作为参数,所以我像这样更改了 setup.py:

from distutils.core import setup
from setuptools.command.develop import develop
from subprocess import check_call
from os import path

class update_submodules(develop):
    def run(self):
        print 1
        if path.exists('.git'):
            check_call(['git', 'submodule', 'update', '--init', '--recursive'])
        develop.run(self)

a = setup(cmdclass = {"develop": update_submodules},
      ...

这意味着在运行“setup.py develop”的默认程序之前运行“git submodule update --init --recursive”。

于 2012-05-17T12:38:21.283 回答