[ Technical exchange] 如何将Python程序转换为玲珑包
Tofloor
poster avatar
HelloWorld!
deepin
2024-08-31 00:21
Author

在deepin23上将简单的python程序迁移到玲珑

以ScreenPen为例

在全局系统上运行ScreenPen模块

python3 -m screenpen

image.png

安装依赖库pyqt5

pip3 install pyqt5

image.png

安装依赖库numpy

pip3 install numpy

image.png
安装依赖库matplotlib

pip3 install matplotlib

image.png
运行模块

python3 -m screenpen

image.png

在虚拟环境中运行

创建虚拟环境

mhc@mhc-PC:~/Documents/screenpen-master$ python3 -m venv screenpen-venv #创建虚拟环境screenpen-venv 
mhc@mhc-PC:~/Documents/screenpen-master$ cd screenpen-venv/
mhc@mhc-PC:~/Documents/screenpen-master/screenpen-venv$ ls
bin  include  lib  lib64  pyvenv.cfg
mhc@mhc-PC:~/Documents/screenpen-master/screenpen-venv$ cd bin/
mhc@mhc-PC:~/Documents/screenpen-master/screenpen-venv/bin$ source activate #激活虚拟环境
(screenpen-venv) mhc@mhc-PC:~/Documents/screenpen-master/screenpen-venv/bin$

激活虚拟环境后,会把screenpen-venv/bin目录加入PATH环境变量

image.png
将screenpen模块拷贝到screenpen-venv/lib/python3.12/site-packages目录

image.png

image.png

安装依赖库numpy,matplotlib,numpy

pip3 install pyqt5 numpy matplotlib

运行模块报错了

image.png

安装setuptools包

pip3 install setuptools
(screenpen-venv) mhc@mhc-PC:~/Documents/screenpen-master/screenpen-venv/lib/python3.12/site-packages$ python3 -m screenpen #运行模块

image.png

这里可以看一下虚拟环境中安装依赖库的目录是在

image.png

image.png
而全局安装的模块是在/home/mhc/.local/lib/python3.12/site-packages

image.png

所以打包玲珑的一个办法就是把一个虚拟环境打包到玲珑容器中,然后使用一个脚本来启动程序

重点来了,怎么打包玲珑呢?

1.先建立这样一个目录

image.png

2.把python3放在files目录

image.png

推荐使用这个python3.11的虚拟环境,我在使用python3.12的版本时,构建出现libc和libm的问题

image.png
使用python3.11构建成功
image.png
linglong.yaml文件值得关注的几个地方
image.png
这里安装依赖库的命令写在build中就可以了
最重要的一点,screenpen模块没有放进容器

image.png
再次构建

image.png
成功运行了,当然icons和desktop不能少了

image.png

image.png

安装后,双击图标就可以运行了
image.png

python和案例文件下载

Reply Favorite View the author
All Replies
出售星辰之书的书商
Moderator
2024-08-31 09:32
#1

好耶!感谢分享

Reply View the author
阿尼樱奈奈
Moderator
2024-08-31 09:40
#2
Reply View the author
Ziggy
deepin
2024-08-31 14:01
#3

你怎么把yaml漏分享了applaud

Reply View the author
HelloWorld!
deepin
2024-08-31 15:02
#4
Ziggy

你怎么把yaml漏分享了applaud

哈哈,忘传了like

Reply View the author
先秦淑女步
deepin
2024-08-31 17:45
#5

like

Reply View the author
ggbond
deepin
2024-08-31 22:37
#6

好人一生平安

Reply View the author
okk~
deepin
2024-09-01 20:00
#7

好耶!感谢分享

Reply View the author