Debian和 Ubuntu下将Python程序打包成.deb安装包
查看python版本
it0@it0-pc:~/桌面/tests/testdeb$ python3 -V
Python 3.8.10
查看pip版本
it0@it0-pc:~/桌面/tests/testdeb$ pip3 -V
pip 24.1.2 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
将工程打包生成一个可执行文件
注意一定要保证python程序在电脑上可以正常运行!!!!!!!
该安装第三方库的安装库,该安装扩展的安装扩展!!!!!!!
python3 main.py
当前项目目录结构
.
├── config
├── DB
├── horizontalSliderUI.py
├── icons
├── main.py
├── ui
└── utils
安装pyinstaller
pip3 install pyinstaller
检查pyinstaller安装成功
pyinstaller -v
在python代码项目目录执行以下命令
pyinstaller -F -w main.py
# 可以通过pyinstaller --help查看帮助
此时项目结构 (产生了build、dist、main.spec)文件和文件夹
.
├── build
├── config
├── DB
├── dist
├── horizontalSliderUI.py
├── icons
├── main.py
├── main.spec
├── ui
└── utils
dist目录中的main文件就是编译好的二进制文件。
此时从其他地方新建目录testa把二进制移动到该目录
此时testa目录结构为:
.
└── main
把程序的依赖配置目录啥的都放到testa目录下(此处为testa示例 根据自己实际情况来)
.
├── DB
│ ├── log
│ │ └── log.txt
│ └── user_DB.db
└── main
此时终端到testa目录下执行./main文件测试程序是否可以正常启动,如有问题就看终端上的报错,没有问题则进行下一步。
把可执行程序和依赖文件打包成.deb文件
在其他位置新建makedeb目录,然后按照以下结构创建目录结构,以下是我makedeb目录下的结构
├── DEBIAN
└── usr
├── lib
└── share
├── applications
└── icons
将testa目录直接移动到lib目录下
├── DEBIAN
└── usr
├── lib
│ └── testa
│ ├── DB
│ │ ├── log
│ │ │ └── log.txt
│ │ └── user_DB.db
│ └── main
└── share
├── applications
└── icons
到DEBIAN目录新增control文件,内容如下(自行百度含义):
Package: debpacktest
Version: 1.0.0
Architecture: arm64
Maintainer: gao
Description: just a test
在/usr/share/applications下制作桌面图标 testa.desktop文件
[Desktop Entry]
Name=debpacktest
Comment=An example
Exec=/usr/lib/testa/m/main #可执行文件路径
Icon=/usr/share/icons/icc.ico #图标路径
Terminal=false #是否运行同时打开终端
Type=Application
X-Ubuntu-Touch=true
Categories=Development
为这个文件添加可执行权限
chmod +x testa.desktop
在/usr/share/icons/文件夹下放icc.ico图标(图标名自定义跟上边配置呼应)
此时makedeb的目录结构如下:
├── DEBIAN
│ └── control
└── usr
├── lib
│ └── testa
│ ├── DB
│ │ ├── log
│ │ │ └── log.txt
│ │ └── user_DB.db
│ └── main
└── share
├── applications
│ └── testa.desktop
└── icons
└── icc.ico
到这里,一个基本的deb软件包就大功告成了。
我们返回到makedeb的上级目录。我们执行
sudo dpkg -b makedeb makedeb_1.0.0_arm64.deb
包的命名要符合规范,我这里是随便打的。
检验的话,可以输入(安装deb包)
sudo dpkg -i makedeb_1.0.0_arm64.deb
我在应用列表里看到了我的程序
如果要卸载,请执行
sudo dpkg -r makedeb
参考链接
https://blog.csdn.net/u013541325/article/details/114954959
https://blog.csdn.net/qq_43790749/article/details/118027929