现在有一个基于 PyQt5 的 GUI 应用,运行在 Linux 环境下,主要的依赖项如下:
系统环境:统信 UOS ,麒麟,Ubuntu 。
部署数量:上百台的台式机。
网络环境:无法连接互联网,全部处于内网环境
我在这方面是个新手,恳请各位前辈和大佬给予指点,告诉一些方向和最佳实践,不胜感激!
1
NessajCN 2024-03-26 13:18:27 +08:00
- 内网机子找一台弄个 git repo
- 把 site-packages 里的依赖和 pyqt 脚本推到 git repo 上 - 其他所有机子装好 python 后 clone 这个 repo - 更新代码只需要推一遍 repo 其他 pull |
![]() |
2
debuggerx 2024-03-26 13:44:04 +08:00 ![]() Nuitka
|
3
ZnductR0MjHvjRQ3 2024-03-26 14:43:32 +08:00
搭一个内网的 docker 仓库 然后每次更新 docker 镜像做自动更新
或者做一个内网中控 远程 shell |
![]() |
4
masterclock 2024-03-26 14:48:03 +08:00
AppImage 打成单文件
|
![]() |
5
opiviqo 2024-03-26 15:30:54 +08:00
再生龙直接 copy 硬盘 然后 pyinstaller 打包后删除源码
|
6
march1993 2024-03-26 15:34:08 +08:00
学工业软件的方式咯,依赖全部打包,运行的时候是启动一个 bash 文件,会配置所有的 path 变量,然后启动
|
7
sakilascott 2024-03-26 15:39:02 +08:00 ![]() 用不着花里胡哨的。
所有依赖打个包,写个安装脚本,nginx 搭个文件服务器,给个下载链接就完了。 后续更新,做个弹框,点击链接自动执行升级脚本。 |
9
wangdk23411 2024-03-26 17:27:16 +08:00
AppImage 打成单文件,这种方案更合适
|
10
fredsunme 2024-03-26 17:27:50 +08:00
如果是 arm 麒麟建议快跑
|
![]() |
11
hokori 2024-03-26 17:31:35 +08:00
直接按标准自建一个软件源
然后 add-key 所有机器 sudo apt install xxxx |
![]() |
12
IamLostInCoding 2024-03-26 18:06:16 +08:00
pyinstaller 打包, 依赖自建软件源或者离线软件包
|
14
ltyj2003 2024-03-26 19:40:45 +08:00 via Android
发个通知,让各单位自行领取光盘安装。
|
![]() |
15
serical 2024-03-26 19:50:24 +08:00
Nuitka 打包
|
![]() |
16
sbldehanhan 2024-03-27 12:00:48 +08:00
一看就是做国产化项目的。哈哈
|
17
julyclyde 2024-03-27 18:17:01 +08:00
我就等等看有没有人回答 docker
|
18
fredsunme 2024-03-28 14:29:04 +08:00
|
19
roundgis 2024-03-28 17:04:07 +08:00 via Android
@fredsunme 早十年八年編譯 qt 都有一定的挑戰。前陣子有個前同事說在統信的源找不到新版 jdk 下載的又用不了 結果花了一個禮拜自己 build 了一個.....
|
20
fredsunme 2024-03-28 17:31:40 +08:00
@roundgis #19 qt 是 qt, pyqt 是 pyqt. 前者在 kylin 编译挺顺畅的,直接走默认。
kylin 的 apt 带了 pyqt 的源,且系统自带 5.14 。但是该版本已经缺 svg, opengl, x11extras 等包 如果是需要 pyqt 5.15 ,就只能自行编译。国内甚至国外成型文章的里,都在让你直接编译,尽管他们的文章排版精美思路清晰,甚至结果也能运行简单的 demo ,但还是会缺上述几个包。 一旦用到了,还是得 apt 补包+重新编译 pyqt 我最后就是去 qt 论坛和 github 靠着近乎没啥关系的报错找到了这些缺失的包需要的依赖。 然后运行时还要看你用的库, 可能还需要指定 platform, -platform xcb 这种你也无法直接靠报错关键字搜到,都是从描述的状态来找到相关文章的。 所以说新坑太多。太小众了,你还得 opencv ,我没记错的话,有个依赖包能找到就是别人在 github 上 opencv 的 issues 里说的 |