ubuntu下使用python生成.deb安装包
前一节介绍看在windows下python生成安装包的方法windows下使用python生成安装包(可实现安装和卸载等).
在ubuntu系统下,安装包一般都是.deb格式,只有这样才能实现在系统上的安装和卸载.那么怎么把python代码转换成.deb包呢?
实现步骤如下:
一.使用pyinstaller 把python代码转成可执行文件
二.使用dpkg工具,把可执行程序和依赖文件打包成.deb文件.
具体实现过程如下:
一.使用pyinstaller 把python代码转换成可执行文件
首先安装:
pip install pyinstaller
#检查pyinstaller安装成功与否:
#只需要执行如下命令:
pyinstaller -v
这里注意其版本,最新的版本生成共享库(4.3版本),较低的版本生成的是可执行程序(3.6版本),可根据需要制定版本安装.
pyinstaller参数作用
-F 表示生成单个可执行文件
-D –onedir 创建一个目录,包含可执行程序,但会依赖很多文件(默认选项)
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧
-c –console, –nowindowed 使用控制台,无界面(默认)
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标,这个ico图标可以在网上使用jpg或者png图片在线生成.
其他参数,可以通过pyinstaller --help查看
开始打包
进入python需要打包的脚本所在目录,然后执行下面的命令即可:
pyinstaller -F pintu.py -i gyx1.ico -w
打包结果
打包完成后,进入到当前目录下,会发现多了__pycache__、build、dist、nhdz.spec这四个文件夹或者文件,其中打包好的可执行程序在dist目录下面,进入即可看到,可以把他拷贝到其他地方直接使用,如下图所示,是打包完成后的目录:
进入dist文件,其中resources是后来自己拷贝进去的,因为需要从里面读文件,点击生成的可执行程序即可运行.
二.使用dpkg工具,把可执行程序和依赖文件打包成.deb文件
在这一步,就是要将生成的可执行程序和依赖的文件打包成.deb文件,用来安装和卸载.
程序是要放到一个系统中的各个部分去的.
因此依次建立下面的文件夹和文件.文件组织结构如下.
pintu_deb/
├── DEBIAN
│ └── control
└── usr├── lib│ └── pintugame│ ├── pintu #可执行程序│ └── resources#依赖的文件│ ├── font│ │ └── simhei.ttf│ └── pictures│ ├── 04.jpg│ ├── 06.jpg│ ├── 1120500964.jpg│ ├── 5.jpg│ ├── 微信图片_20210617160545.jpg│ ├── 微信图片_20210617160622.jpg│ ├── 微信图片_20210617160628.jpg│ ├── 微信图片_20210617160633.jpg│ ├── 微信图片_20210617160638.jpg│ ├── 微信图片_20210617160644.jpg│ ├── 微信图片_20210617160648.jpg│ ├── 微信图片_20210617160652.jpg│ ├── 微信图片_20210617160656.jpg│ ├── 微信图片_20210617160702.jpg│ └── 微信图片_20210617160706.jpg└── share├── applications│ └── pintugame.desktop└── icons└── gyx.ico
这是使用一个文件夹模拟出linux的文件架构。比如说我有可执行文件和工程依赖的所有文件,放到文件夹/usr/lib/pintugame里面。那么只需要把可执行文件和工程依赖的所有文件丢进pintugame文件夹。多余出来的是需要手工添加的deb包配置文件(夹),(share部分和DEBIAN部分).
如图所示:
其中各文件的内容添加如下:
打开control文件粘贴:
Package: debpacktest
Version: 1.0.0
Architecture: amd64
Maintainer: gao
Description: just a test
Package:你的包名
Version:版本
Architecture:架构
Maintainer:维护者
Description:解释
括号后的内容 根据你自己的需要去改变
然后保存.
在/usr/share/applications下制作桌面图标 pintugame.desktop,
打开或者创建文件:
sudo gedit pintugame.desktop
这一步非常重要 关系到你能否在应用列表出现你自己的程序,清一定按照下面的步骤完成。
填写的内容是(注释不要):
[Desktop Entry]
Name=PintuGame
Comment=game
Path=/usr/lib/pintugame #表示可执行程序读取的依赖文件所在的路径,不加的话,会找不到这个resoures,导致无法运行,这个尤其要注意填写.
Exec=/usr/lib/pintugame/pintu #可执行文件的.
Icon=/usr/share/icons/gyx.ico #程序图标
Terminal=false #是否运行同时打开终端
Type=Application
X-Ubuntu-Touch=true
Categories=Game #分类。Categories可以取以下值,表示程序的启动快捷方式放在哪个菜单下:应用 Application;Network互联(Internet);办公 Office;图形 Graphics;声音和视AudioVideo; 系统工具 System;编程 Development; 附件 Utility;影音 AudioVideo;游戏 Game;首 选项 Settings(GNOME;GTK;Settings;HardwareSettings;); 系统管理System。
Name[en_US]=PintuGame #运行desktop显示的名字.
现在就可以进行调试这个desktop文件的可行性了,点击这个文件右键打开属性,设置权限为可执行文件,如下图,
点击图标,如果正常运行了,那就可以进行下一步打包成.deb文件了.
执行如下命令,将整个文件打包成.deb文件.
sudo dpkg -b pintu_deb pintuigame_1.0.0_amd64.deb
包的命名要符合规范。
检验的话,可以输入(安装deb包)
sudo dpkg -i pintuigame_1.0.0_amd64.deb
在我的ubuntu机器上,运行很完美,我在应用列表里看到了我的程序。
如果要卸载,请执行
sudo dpkg -r pingtugame (这个pintugame是lib下的那个文件夹名)
现在安装完之后可以去本机电脑上看到pingtugame这个包被安装到了/usr/lib下,
pintugame.desktop被安装到了/usr/share/applications下,如图所示.
至此转换完毕.
要注意GLIBC版本问题,一般来说要想提高兼容性,最好是在ubuntu系统低版本上生成比较好,因为高版本系统的GLIBC较高,而生成.deb包依赖GLIBC,低版本系统一般支持不了高版本GLIBC,所以会导致在低版本上无法运行.
ubuntu下使用python生成.deb安装包相关推荐
- 使用wine在ubuntu上运行和制作deb安装包
wine原理 wine通过在linux上模拟windows的API,加载并运行windows程序.那么,wine具体是如何实现的? windows和linux,作为典型的PC操作系统,分为内核态的系统 ...
- Linux下通过dpkg生成.dep安装包
1.制作安装包 制作安装包的信息 1> 生成文件夹 DEBIAN 2> 生成文件control,放在DEBIAN下 3> control中内容 package: *** # 生成的包 ...
- ubuntu16.04下安装如何安装.deb安装包
在Ubuntu下安装deb包需要使用dpkg命令. Dpkg 的普通用法: 1.sudo dpkg -i <package.deb> 安装一个 Debian 软件包,如你手动下载的文件. ...
- 基于deepin-wine的windows软件打包deb安装包教程(本實例安裝qq)
1.安装7z.wine sudo apt install p7zip deepin-wine5 -y 2.用deepin-wine新建一个纯净的32位容器,安装相应的软件 WINEARCH=win32 ...
- 基于deepin-wine的windows软件打包deb安装包教程
1.安装7z 2.用deepin-wine新建一个纯净的容器,安装相应的软件 3.运行软件调试,确认没问题后关闭,最好重启一下 4.mkdir -p dabao/extract/DEBIAN 5.cd ...
- linux/ubuntu中制作deb安装包
linux/ubuntu中制作deb安装包 由于要制作一个在arm平台上运行的xorg-server-1.12.4版本的安装包,所以需要学习如何制作deb安装包.这里以一个非常小的工程为例,记录制作的 ...
- Ubuntu 系统安装.deb安装包
ubuntu 系统使用dpkg 的方法安装 .deb 安装包 比如在ubuntu 系统下 下载了一个 wps 的 .deb 安装包 打开终端 输入 :sudo dpkg -i .deb 安装包的名字 ...
- 【昇腾】【玩转Atlas200DK系列】为Atlas 200 DK制作python环境离线安装包
最近发现在开发板上跑python的需求比较旺盛,但是在开发板上装python开发环境(需要装一堆依赖)并不是一件容易的事情,特别是网速不行的时候,再加上换源等各种操作,还是比较烦的,所以就干脆抽了一个 ...
- 从零开始搭建Cydia软件源+制作deb安装包
Cydia中的软件源地址保存在 /etc/apt/sources.list.d/ 目录下,分为两种: 1. 以软件包形式安装的软件源,如Cydia默认的软件源,Modmyi.BigBoss等,该类软件 ...
最新文章
- AI 版 Nature Index 排名,两种结果折射中国 AI 实力软肋
- html中多边形图形怎么制作,CSS制作图形速查表
- 为 Python Web App 编写 Dockerfiles
- Python通过一个网页地址获得网页标题Title
- 成功解决AttributeError: 'NoneType' object has no attribute '__array_interface__'
- C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」
- 传闻中“日进斗金”的程序员,你真的了解吗?看完还想当程序员?
- 阿里电商架构演变之路(二)
- VS 2010 SP1 and SQL CE :ScottGu's Blog
- 【渝粤题库】陕西师范大学200621 英语词汇学 作业
- Volley源码解析(一)
- i5 7200u 计算机专业,i5 7200U理论性能对比_笔记本评测-中关村在线
- java加密文件夹_怎样用JAVA给文件夹加密,拜求各位大侠!
- Keras学习教程七
- 岁月温柔-24 妈妈转到省医院第4天
- MSDC 4.3 接口规范(16)
- javascript_ES6新特性
- 中国地图及各省市县地图json下载地址
- 一个工科土博士生---最近的状态和想法
- Unity3D: 精灵更换图片脚本实现