我可以做些什么来加速使用 dh-virtualenv 的 deb pkg 构建?

What can I do to speed up deb pkg building with dh-virtualenv?

我正在寻找加速从我的 python 应用程序构建 deb pkg 的技术:

Source: my-shiny-app
Section: python
Priority: extra
Maintainer: me <me_write_me@me.com>
Build-Depends: debhelper (>= 9), python, dh-virtualenv (>= 0.6-1)
Standards-Version: 3.9.5

Package: my-shiny-app
Architecture: amd64
Pre-Depends: dpkg (>= 1.16.1), python2.7, ${misc:Pre-Depends}
Depends: ${python:Depends}, ${misc:Depends}, libzmq1
Description: my-app

大部分时间用于构建我的应用程序所依赖的 python 个库。

更新:

我找到了a ticket in dh-virtualenv github。他们建议使用 pip7。 pip7支持本地缓存wheel包(从工单copy&paste):

#!/usr/bin/make -f

%:
    dh $@ --with python-virtualenv


WHEEL_ROOT:=    file:///var/wheelhouse

override_dh_virtualenv:
    pip wheel -w=$(WHEEL_ROOT) -f $(WHEEL_ROOT) -r requirements.txt
    dh_virtualenv \
        --extra-pip-arg "--use-wheel" \
        --extra-pip-arg "--find-links=$(WHEEL_ROOT)"

问题是:创建的 deb 包不包含 python 和库。

如果构建依赖项是瓶颈,请尝试升级到最新版本的 pip。更高版本将 pre-built 包存储在本地 wheel 缓存中,使后续构建速度更快。

如果下载包需要很长时间,您应该copy your dependencies to a local folder on your build-server。确保将包复制到文件系统上的本地文件夹。虽然 pip 支持通过 --find-links=http://your-local-package-host/ 访问,但收集依赖项仍然相当缓慢,除非您为包主机设置 https 和适当的缓存 headers。

如果安装应用程序本身需要很长时间(在 "Processing /some/folder" 之后挂起),那么您遇到的是 slow copy pip installation issue。您可以尝试通过在 dh-virtualenv.

中将 pip install . 替换为 python setup.py sdistpip install dist/my-shiny-app-1.0.tar.gz 来解决这个问题