Python打包,嵌入式方式打包,而且是官方推荐的打包方式-Python嵌入式打包真的不如pyinstaller吗?

嵌入式打包:

解释:

用嵌入式版本的python解释器进行打包程序,python有嵌入式版本,而且这个嵌入式版本的解释器大小很小,可以很好的省磁盘空间!!!

打包步骤:

1、从python官网下载嵌入式版本的python

Welcome to Python.orgThe official home of the Python Programming Languageicon-default.png?t=O83Ahttps://www.python.org/

下载网址:

Python Releases for Windows | Python.orgThe official home of the Python Programming Languageicon-default.png?t=O83Ahttps://www.python.org/downloads/windows/

 下载下来,放在一个文件夹里:

 2、配置环境

解压该压缩包,进入该文件夹里:

 更改python310._pth文件里面的内容:

 下载get-pip.py文件:

Index of /pip/icon-default.png?t=O83Ahttps://bootstrap.pypa.io/pip/

 将get-pip.py放到python解释器同级目录:

 进入C:\Users\10501\Desktop\RunPythonWork\python-3.10.11-embed-amd64该文件夹,打开cmd:

 执行如下命令:

.\python.exe get-pip.py

 这样就会生成两个文件夹Lib、Scripts:

 进入Scripts文件夹,打开cmd:

 用这个文件夹的pip进行安装你自己的程序所需要的第三方库:

现在可以查看嵌入式pyhthon文件夹的大小:

 这已经很小了,相比于非嵌入式版本的python小很多了。

3、将自己写好的程序文件夹放入与python-3.10.11-embed-amd64同级目录下:

 4、用嵌入式python执行写好的程序源代码:

.\python-3.10.11-embed-amd64\python.exe .\PackageTest\main\main.py

 5、编写bat文件去直接执行命令:

start.bat:

@echo off


chcp 65001

echo 开始运行


.\python-3.10.11-embed-amd64\python.exe .\PackageTest\main\main.py

pause

 点击start.bat运行:

 注意bug解决:

1、C:\Users\10501\Desktop\RunPythonWork>.\python-3.10.11-embed-amd64\python.exe .\PackageTest\main\main.py
Traceback (most recent call last):
  File "C:\Users\10501\Desktop\RunPythonWork\PackageTest\main\main.py", line 15, in <module>
    from PackageTest.utils.utils import *
ModuleNotFoundError: No module named 'PackageTest'

 报错:找不到自己创建的包!!!

main.py的代码如下:

# ---encoding:utf-8---
# @Time    : 2023/6/22 17:35
# @Author  : CBAiotAigc
# @Email   :1050100468@qq.com
# @Site    : 
# @File    : main.py
# @Project : Test
# @Software: PyCharm
# import os
# import sys
# BASE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# print(BASE_PATH)
# sys.path.append(BASE_PATH)

from PackageTest.utils.utils import *

print("main")

上面的PackageTest是我创建的包:

 解决方案:

代码最上面添加如下代码,即将sys.path追加项目根目录:

import os
import sys
BASE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
print(BASE_PATH)
sys.path.append(BASE_PATH)

完整的main.py如下:

# ---encoding:utf-8---
# @Time    : 2023/6/22 17:35
# @Author  : CBAiotAigc
# @Email   :1050100468@qq.com
# @Site    : 
# @File    : main.py
# @Project : Test
# @Software: PyCharm
import os
import sys
BASE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
print(BASE_PATH)
sys.path.append(BASE_PATH)

from PackageTest.utils.utils import *

print("main")

再次运行则可以成功:

 大功告成!!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIOTAS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值