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

嵌入式打包:

解释:

用嵌入式版本的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   :[email protected]
# @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   :[email protected]
# @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")

再次运行则可以成功:

 大功告成!!!

猜你喜欢

转载自blog.csdn.net/wtl1992/article/details/131343498