使用setuptools构建Debian包。
我正在开发Linux Mint 20.3。我用python做了一个项目,我想构建一个.deb包。我试着按照网上的指示去做,但每次我做什么都会碰壁。
My project root directory:
- env/
- .git/
- scripts/
- src/
- requirements.txt
- .gitlab-ci.yml
- .gitignore
- setup.py
互联网大多建议使用stdeb。我已经安装了所有需要的依赖项:
python-stdeb、fakeroot、python3all、dh-python以及我不记得的所有其他必要的东西。
我的setup.py非常基础
from setuptools import setup, find_packages
setup(
name='my_app',
version='1.0.0',
description='My application',
packages=find_packages(),
install_requires=['numpy==1.24.2',
'opencv-python==4.5.5.64',
'pyserial==3.5',
'PySide2==5.15.2.1',
'pyusb==1.2.1'])
互联网建议运行以下程序:
python setup.py --command-packages=stdeb.command bdist_deb
最终出现错误:
python3 setup.py install --force --root=debian/python3-lp5x-factory-app --no-compile -O0 --install-layout=deb --prefix=/usr
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: option --install-layout not recognized
Internet建议我从debian/rules文件中删除--install layout=deb,因为它适用于Python 3.3或更低版本,因为我使用的是3.10.10。但是,debian/rules文件是自动生成的,我无法删除它。debian/rrules或debian/control是由python setup.py生成的--命令包=stdeb.command bdist_deb,而不是由我手动生成的
除此之外,我还有一些应用程序的依赖项,例如:
libgirepository1.0-dev,libusb-1.0-0-dev
Internet还建议将其添加到debian/control中,它是由与以前相同的命令生成的,所以我无法手动附加它。我尝试的任何方法都不起作用,我被卡住了。
我只需要:
-
使用setup.py生成.deb
-
安装libgirepository1.0-dev、libusb-1.0-0-dev和其他依赖项
什么都不管用