Pyinstaller将py打包成exe的实例
如果你遇到各种问题,你可以私信联系我免费解决
首先安装此库
pip install pyinstaller
PyInstaller生成可执行程序
pyinstaller app.py 或者xxx.spec
首先对于多py文件和涉及大模型程序,建议新建一个spec文件,我将展示一个spec文件,你可以替换里面的路径和文件名,打包好之后打包文件在dist文件夹里面
注意
路径一定不要包含中文,全部使用英文,不然exe运行会引起报错无从下手。
# gui29.spec
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\gui19_login.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\barpictue.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\docxreport.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\donghuagif.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\editcase_ui.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\exportcase_ui.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\getjsonnew.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\graph_s.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\gui19_ui_new.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\login_ui.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\neo-conn.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\newbar.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\newcase_ui.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\newpie.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\pie_window.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\predict.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\process.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\processtrace_ui.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\recordscreen2.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\sql.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\sqlpage.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\sqlpage2.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\trace.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\traceability.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\vs_editcase.py',
'C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem2\\gui\\gui29\\vs_newcase.py'
],
pathex=['C:\\Users\\ADMINSTRATION\\Desktop\\safe\\mem\\gui\\gui29'],
binaries=[],
datas=[
],
hiddenimports=[
'PyQt5',
'PyQt5.QtWebEngineCore',
'ray'
],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='gui19_login',
debug=True,
bootloader_ignore_signals=False,
strip=False,
upx=False,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=False,
upx_exclude=[],
name='gui19_login'
)
针对在包裹过程遇到的问题总结
(1)
**no qt5.core
mportError: Dll load failed while importing QtCore:
**
针对这个问题,这是因为pyqt5核心组件的dll文件没有复制到我们的打包目录,我们需要去python的安装目录,例如我的目录为
C:\ProgramData\Anaconda3\envs\yolo5test\Lib\site-packages\PyQt5\Qt5\bin
把里面的dll文件全部复制到打包目录的根目录就好了。
(2)
BertForSequenceClassification requires the PyTorchI library but it was not found in your environment. Checkout the instructions on theinstallation page: https://pytorch. org/get-started/locally/ and follow the ones that match your environment.
针对这个问题是因为torch库文件没有引入到打包目录,我们需要去
C:\ProgramData\Anaconda3\envs\yolo5test\Lib\site-packages\
这个目录把以下图片展示的目录全部复制到我们打包的根目录下面,就不会报这个错误了。
(3)
no such filo or diroctary:"bort modol woights. pt
这种情况一样好补,只需要把所有的资源文件都复制到打包程序的exe同一级目录下面,exe运行就可以使用这个文件了。