嵌入式打包:
解释:
用嵌入式版本的python解释器进行打包程序,python有嵌入式版本,而且这个嵌入式版本的解释器大小很小,可以很好的省磁盘空间!!!
打包步骤:
1、从python官网下载嵌入式版本的python
Welcome to Python.orgThe official home of the Python Programming Languagehttps://www.python.org/

下载网址:
Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/

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

2、配置环境
解压该压缩包,进入该文件夹里:


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



下载get-pip.py文件:
Index of /pip/
https://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")
再次运行则可以成功:

大功告成!!!



















