前一节介绍看在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安装包相关推荐

  1. 使用wine在ubuntu上运行和制作deb安装包

    wine原理 wine通过在linux上模拟windows的API,加载并运行windows程序.那么,wine具体是如何实现的? windows和linux,作为典型的PC操作系统,分为内核态的系统 ...

  2. Linux下通过dpkg生成.dep安装包

    1.制作安装包 制作安装包的信息 1> 生成文件夹 DEBIAN 2> 生成文件control,放在DEBIAN下 3> control中内容 package: *** # 生成的包 ...

  3. ubuntu16.04下安装如何安装.deb安装包

    在Ubuntu下安装deb包需要使用dpkg命令. Dpkg 的普通用法: 1.sudo dpkg -i <package.deb> 安装一个 Debian 软件包,如你手动下载的文件. ...

  4. 基于deepin-wine的windows软件打包deb安装包教程(本實例安裝qq)

    1.安装7z.wine sudo apt install p7zip deepin-wine5 -y 2.用deepin-wine新建一个纯净的32位容器,安装相应的软件 WINEARCH=win32 ...

  5. 基于deepin-wine的windows软件打包deb安装包教程

    1.安装7z 2.用deepin-wine新建一个纯净的容器,安装相应的软件 3.运行软件调试,确认没问题后关闭,最好重启一下 4.mkdir -p dabao/extract/DEBIAN 5.cd ...

  6. linux/ubuntu中制作deb安装包

    linux/ubuntu中制作deb安装包 由于要制作一个在arm平台上运行的xorg-server-1.12.4版本的安装包,所以需要学习如何制作deb安装包.这里以一个非常小的工程为例,记录制作的 ...

  7. Ubuntu 系统安装.deb安装包

    ubuntu 系统使用dpkg 的方法安装 .deb 安装包 比如在ubuntu 系统下 下载了一个 wps 的 .deb 安装包 打开终端 输入 :sudo dpkg -i .deb 安装包的名字 ...

  8. 【昇腾】【玩转Atlas200DK系列】为Atlas 200 DK制作python环境离线安装包

    最近发现在开发板上跑python的需求比较旺盛,但是在开发板上装python开发环境(需要装一堆依赖)并不是一件容易的事情,特别是网速不行的时候,再加上换源等各种操作,还是比较烦的,所以就干脆抽了一个 ...

  9. 从零开始搭建Cydia软件源+制作deb安装包

    Cydia中的软件源地址保存在 /etc/apt/sources.list.d/ 目录下,分为两种: 1. 以软件包形式安装的软件源,如Cydia默认的软件源,Modmyi.BigBoss等,该类软件 ...

最新文章

  1. AI 版 Nature Index 排名,两种结果折射中国 AI 实力软肋
  2. html中多边形图形怎么制作,CSS制作图形速查表
  3. 为 Python Web App 编写 Dockerfiles
  4. Python通过一个网页地址获得网页标题Title
  5. 成功解决AttributeError: 'NoneType' object has no attribute '__array_interface__'
  6. C 语言快速入门,21 个小项目足矣!「不走弯路就是捷径」
  7. 传闻中“日进斗金”的程序员,你真的了解吗?看完还想当程序员?
  8. 阿里电商架构演变之路(二)
  9. VS 2010 SP1 and SQL CE :ScottGu's Blog
  10. 【渝粤题库】陕西师范大学200621 英语词汇学 作业
  11. Volley源码解析(一)
  12. i5 7200u 计算机专业,i5 7200U理论性能对比_笔记本评测-中关村在线
  13. java加密文件夹_怎样用JAVA给文件夹加密,拜求各位大侠!
  14. Keras学习教程七
  15. 岁月温柔-24 妈妈转到省医院第4天
  16. MSDC 4.3 接口规范(16)
  17. javascript_ES6新特性
  18. 中国地图及各省市县地图json下载地址
  19. 一个工科土博士生---最近的状态和想法
  20. Unity3D: 精灵更换图片脚本实现

热门文章

  1. 微信小程序《仿支付宝首页应用管理》
  2. 7-14 大小写转换 (10 分)(PTA题目)
  3. Facebook广告:PPE广告有哪些不同之处
  4. 如何用ASP实现权限的设置?
  5. java初学者买衣服案例
  6. 工作效率全靠 Deadline?7 步策略让你成为行动派
  7. java修改ppt格式_Java 加密、解密PPT文档
  8. 22年Web3.0的三大前沿议题:NFT、元宇宙和DAO
  9. X射线荧光光谱(XRF)原理
  10. windows 远程桌面连接 用户账户限制