Debian构建软件包:将python virtualenv添加到dpkg-buildpackage中,以上传到启动板

时间:2019-03-25 18:42:29

标签: python virtualenv dpkg

我想打包一个python程序,并以deb包的形式寄出。

出于某种原因(我知道有99%的做法是错误的做法),我希望将该程序在debian软件包中的python虚拟环境中发布。

我知道我可以使用dh-virtualenv来做到这一点。这很好用-通常没有问题。 但是,当我要将其上传到 launchpad 时,就会出现问题。上载到启动板意味着上载源软件包。用dh-virtualenv来说,源软件包是软件包描述,其中还没有创建virtualenv。

当我将其上传到启动板时,将不会生成该软件包,因为在启动板的构建过程中执行的dh-virtualenv会尝试将python模块安装到virtualenv中,这意味着要安装这些模块无法通过PyPI进行操作,因为启动板不允许外部网络访问。

因此,基本上有两种可能的解决方案:

方法A

准备virtualenv并将其以某种方式合并到源代码包中,并使dh生成过程仅将已准备好的virtualenv“移动”到其最终位置。这可以与virtualenv --relocatable一起使用。 重定位会在所有python脚本的开头删除utf-8标记,从而使virtualenv中的所有python脚本都损坏了。

方法B

以某种方式 cache 源包中的所有必需python软件包,并且有dh_virtualenv从缓存而不是从PyPI安装。 pip2pi似乎可行,但是某些实验表明,尽管它们位于本地软件包索引中,但它不会安装软件包。

这两种方法似乎都比较笨拙并且容易出错。 你觉得这怎么样? 你有什么经验? 你会推荐什么?

0 个答案:

没有答案