带有cookiecutter的dpkg构建包无效或不存在源目录路径:debian/sampleproject



你好,我正试图用virtualenv从python项目创建一个deb包为了做到这一点,我使用了cookiecutter。我一生中从未创建过deb包,所以我遵循指南列出在这里,但我在尝试使用构建包时遇到了一些问题CCD_ 1(我在ubuntu 21.10上,使用python 3.9.7(,首先,它被警告缺少文件(未能运行pyversion(但是我安装了python2.7解决了这个问题,但不幸的是我发现自己犯了一个错误,我真的到处找过了,但我可以找不到任何东西,有问题的错误是:

dh_auto_configure: error: invalid or non-existing path to the source directory: debian/sampleproject-0.1
make: *** [debian/rules:43: build] Errore 255
dpkg-buildpackage: Errore: debian/rules build subprocess returned exit status 2

也就是说,它期望存在尚未创建的目录

情况树是:

.
├── debian
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── cookiecutter.json
│ ├── copyright
│ ├── rules
│ ├── sampleproject.debhelper.log
│ ├── sampleproject.links
│ ├── sampleproject.postinst
│ ├── sampleproject.triggers
│ └── source
│ ├── format
│ └── options
├── sampleproject
│ ├── __init__.py
│ └── sample.py
├── sampleproject-build-deps_0.1_all.deb
├── sampleproject-build-deps_0.1_amd64.buildinfo
├── sampleproject-build-deps_0.1_amd64.changes
└── setup.py

而sample.py代码(一个简单的测试程序(是:

from randstr import randstr
def main():
print("Hello Worls")
print(randstr())

if __name__ == "__main__":
main()

然而init.py我无法理解它的有用性,它是空的文件,而其他一切都是通过回答问题生成的:

cookiecutter https://github.com/Springerle/dh-virtualenv-mold.git

它是我用CCD_ 2安装的。

我希望有人能帮助我,因为几乎没有关于这些事情的任何信息。

像你一样挣扎,但有一点是肯定的,你的教程太旧了,有一种新的方法来打包Python应用程序。

你绝对应该阅读Debian Python政策,尤其是§4.3,它解释了所需的结构更像这个:

.
└── debian
├── python3-sampleproject
│ ├── __init__.py
│ ├── setup.py
│ └── sample.py
├── sampleproject-build-deps_0.1_all.deb
├── sampleproject-build-deps_0.1_amd64.buildinfo
├── sampleproject-build-deps_0.1_amd64.changes
├── changelog
├── compat
├── control
├── cookiecutter.json
├── copyright
├── rules
├── sampleproject.debhelper.log
├── sampleproject.links
├── sampleproject.postinst
├── sampleproject.triggers
└── source
├── format
└── options

此外,最好使用dh_make -p <your_package>_1.0 --python --createorig来确保打包Python文件的最新版本。

在那之后,我发现最好的方法是看看Debian自己打包Python应用程序的方式。

这是一个很好的(简单的(例子:https://salsa.debian.org/python-team/packages/python-untangle/-/tree/debian/main/debian

祝好运

debian/rules

替换:

dh $@ --with python-virtualenv --sourcedir $(SDIST_DIR)

带有:

dh $@ --buildsystem=pybuild --with python3 $(DH_VENV_ARGS)

并从您的setup.py中删除install_requires。我相信dh-virtual找到了requirements.txt本身。

再次运行build命令,并记住安装所需的库。您可能需要安装python和python setuptools(我知道您正在运行python3(才能在perl模块中获得python版本,并且需要将它们添加到控制文件中。

最新更新