Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从单个python项目创建多个deb包_Python_Linux_Package_Debian_Deb - Fatal编程技术网

从单个python项目创建多个deb包

从单个python项目创建多个deb包,python,linux,package,debian,deb,Python,Linux,Package,Debian,Deb,我有一个Python项目,我想用这段代码创建两个Debian包,一个用于项目本身,另一个用于一些数据文件 我的debian/control如下所示: Source: demopackage Section: web Priority: extra Maintainer: myself <myself@example.com> Build-Depends: debhelper (>= 8.0.0), python (>=2.7), python-setuptools Sta

我有一个Python项目,我想用这段代码创建两个Debian包,一个用于项目本身,另一个用于一些数据文件

我的
debian/control
如下所示:

Source: demopackage
Section: web
Priority: extra
Maintainer: myself <myself@example.com>
Build-Depends: debhelper (>= 8.0.0), python (>=2.7), python-setuptools
Standards-Version: 3.9.3

Package: demopackage
Architecture: all
Depends: ${misc:Depends}, ${python:Depends}
Description: A demo package
  This is the demo package

#Package: demopackage-test
#Architecture: all
#Depends: ${misc:Depends}, ${python:Depends}
#Description: demo package unit test
# This is the demo package's unit test package :)
当我在
debian/control
中列出一个包时,它会被正确创建;当我取消对第二个包的注释时,我会得到两个或多或少的空包,这是因为
debild
不知道哪些文件属于哪个包

问题是为了创建一个
demopackage
“python包”和一个
demopackage测试
,其中只包含
test/unit_test.py
(第二个包的我的数据文件),我应该更改什么

让我更清楚一点:当我在
debian/control
中只列出一个包时,生成的
demopackage
应该与
debaild
创建的包相同(即它包含安装在
/usr/share/pyshared
中的代码,在
/usr/lib/python2.7/…
中创建的符号链接)

demopackage测试
我可以自己处理,我只需要添加一个
debian/demopackage测试。安装
文件,但我不知道如何处理
demopackage


您可以下载包测试代码

您基本上得到了答案-
dh_install
是一种简单的方法,可以指定哪些文件放在哪里

如果您可以轻松地枚举要进入
demopackage
的文件和/或目录,那么创建
debian/demopackage.install
文件将解决此问题。对于许多python包来说,它最终足够有一行

/usr/lib/python2.*/*-packages/whatever
但是,如果您需要比
dh_install
所能提供的更大的灵活性,您可能需要使用一些显式的shell命令,或者除了
dh_install
之外。例如,要使安装到
debian/tmp
的所有内容都进入
demopackage
中,除了一个test/unit_test.py文件之外,您可以将此节放入
debian/rules

#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

%:
    dh $@ --buildsystem=python_distutils --with=python2
override_dh_install:
        dh_install
        cp -a debian/tmp/* debian/demopackage/
        rm debian/demopackage/usr/share/whatever/unit_test.py
只要不从构建树外部拉入文件,并且在过程中使用的所有工具都由构建依赖项负责,您几乎可以做任何您想将正确的文件放到正确位置的事情