我怎么能用dh-virtualenv加速deb pkg建设?

时间:2016-01-13 22:09:13

标签: python deb

我正在寻找加速从我的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支持轮包的本地缓存(从票证中复制和粘贴):

#!/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和库。

1 个答案:

答案 0 :(得分:2)

如果构建依赖项是瓶颈,请尝试升级到最新版本的pip。更高版本将预构建的软件包存储在本地轮式缓存中,使后续构建更快。

如果下载程序包需要很长时间,则应copy your dependencies to a local folder on your build-server。确保将包复制到文件系统上的本地文件夹。虽然pip支持通过--find-links=http://your-local-package-host/进行访问,但除非您设置https&amp;包主机的正确缓存标头。

如果安装应用程序本身需要很长时间(在“处理/某些/文件夹”之后挂起),那么您将遇到slow copy pip installation issue。您可以尝试在dh-virtualenv中将pip install .替换为python setup.py sdistpip install dist/my-shiny-app-1.0.tar.gz来解决此问题。