当前位置:网站首页>Pycharm项目使用pyinstalle打包过程中问题及解决方案
Pycharm项目使用pyinstalle打包过程中问题及解决方案
2022-06-30 10:19:00 【消灭BUG鸭】
1、下载并安装pyinstaller库
(一)直接命令行安装
pip3 install pyinstaller
(二)或者通过官网下载包,然后本地安装
2、使用pyinstaller命令行进行打包
(一)含有依赖库的整个项目建议使用-D方式,含有打包目录,包括一些dlls应用程序扩展等。先-c有控制台,再-w无需黑窗控制台进行打包,logo.ico为自定义的exe图标,XXXX.py为主程序py文件。即:
先使用下面命令行打包:
pyinstaller -D -c -i logo.ico XXXX.py
在步骤5后,再使用下面隐藏黑窗口的命令行,再次打包:
pyinstaller -D -w -i logo.ico XXXX.py
(二)也可以使用-F进行打包成单独的exe,打包速度比-D慢很多。其余文件意义同(一)
pyinstaller -F -c -i logo.ico XXXX.py ##生成单独exe, -c有控制台黑窗
pyinstaller -F -w -i logo.ico XXXX.py ##生成单独exe,-w无控制台黑窗
3、使用多线程文件进行打包时,需要同时出现多窗口,因此需要在主程序导入multprocessing,即在主程序加入以下语句。
import multiprocessing
.
.
.
if __name__ == "__main__":
####################多线程打包需要在主函数开始处添加
multiprocessing.freeze_support()
4、打包之后,exe在dist文件夹下。出现的问题汇总:
(1)ModuleNotFoundError:No module name “xxx”
原因分析:这是缺少第三方库xxx
解决方法:可以在cmd或者pycharm的Terminal进行直接用pip安装这个库
(2)出现Hidden import not found “xxx”和 WARNING提示
原因分析:不会影响程序的正常运行,可以忽略这个警告
解决方法:忽略即可
(3)黑窗闪退
原因分析:一些库没有安装到或者打包时pyinstaller强行打包了一些不必要的库。
解决方法:打开.exe文件,通过查看命令符窗口报的错来解决。比如::将项目中一些必要的输入文件,配置文件等放入与exe同一级目录下。
5、将运行时出现的问题解决后,删除项目文件夹中的(pycache,build,dist,xxx.spec)文件
6、最后将包含exe文件的dist文件夹压缩成压缩包后,这样就可以到别的电脑中双击运行。
【最后,可以忽略这个,但是目前通过修改打包生成的配置spec已解决】
(1) 打包过程中,WARNING警告提示:
4377 WARNING: lib not found: torch_python.dll dependency of
D:\Software\Anaconda3\Path\envs\Yolov5-DeepSort-Pytorch\lib\site-packages\torch_C.cp38-win_amd64.pyd
4932 WARNING: lib not found: torch_cpu.dll dependency of
D:\Software\Anaconda3\Path\envs\Yolov5-DeepSort-Pytorch\lib\site-packages\torchvision_C.pyd
4936 WARNING: lib not found: c10_cuda.dll dependency of
D:\Software\Anaconda3\Path\envs\Yolov5-DeepSort-Pytorch\lib\site-packages\torchvision_C.pyd
4937 WARNING: lib not found: torch_cuda.dll dependency of
D:\Software\Anaconda3\Path\envs\Yolov5-DeepSort-Pytorch\lib\site-packages\torchvision_C.pyd
4938 WARNING: lib not found: c10.dll dependency of
D:\Software\Anaconda3\Path\envs\Yolov5-DeepSort-Pytorch\lib\site-packages\torchvision_C.pyd
(2) 修改方法
将下面四行插入.spec配置文件:
for d in a.datas:
if '_C.cp38-win_amd64.pyd' in d[0]:
a.datas.remove(d)
break
(3)详细的.spec配置文件:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['D:\\Files'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
####################################add
for d in a.datas:
if '_C.cp38-win_amd64.pyd' in d[0]:
a.datas.remove(d)
break
####################################stop
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
在修改完配置文件之后,使用如下命令进行编译exe文件:
pyinstaller mult_car.spec
边栏推荐
- matplotlib 笔记: contourf & contour
- 超长干货 | Kubernetes命名空间详解
- Foresniffer tutorial: extracting data
- Skill combing [email protected] voice module +stm32+nfc
- Gd32 RT thread PWM drive function
- Pandora IOT development board learning (HAL Library) - Experiment 1 running lantern (RGB) experiment (learning notes)
- CSDN博客运营团队2022年H1总结
- I found a wave of "alchemy artifact" in the goose factory. The developer should pack it quickly
- Mysql database foundation: TCL transaction control language
- nvm、nrm、npx使用(安装、基本命令、参数、curl、wget)
猜你喜欢
![[deep learning] common methods for deep learning to detect small targets](/img/c6/8f0549864992a1554397bad16dad4d.jpg)
[deep learning] common methods for deep learning to detect small targets

今晚19:00知识赋能第2期直播丨OpenHarmony智能家居项目之控制面板界面设计

Go zero micro Service Practice Series (VIII. How to handle tens of thousands of order requests per second)

苹果高管公然“开怼”:三星抄袭 iPhone,只加了个大屏

Review of mathematical knowledge: curve integral of the second type

文件共享服务器

List介绍

Arm新CPU性能提升22%,最高可组合12核,GPU首配硬件光追,网友:跟苹果的差距越来越大了...

DQN笔记

智能DNA分子纳米机器人模型来了
随机推荐
Voir le changement technologique à travers la Légion Huawei (5): Smart Park
7 大轻量易用的工具,给开发者减压提效,助力企业敏捷上云 | Techo Day 精彩回顾...
mysql数据库基础:视图、变量
MATLAB image histogram equalization, namely spatial filtering
再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大
Review of mathematical knowledge: curve integral of the second type
Skill combing [email protected] intelligent instrument teaching aids based on 51 series single chip microcomputer
国产自研系统的用户突破4亿,打破美国企业的垄断,谷歌后悔不迭
19:00 p.m. tonight, knowledge empowerment phase 2 live broadcast - control panel interface design of openharmony smart home project
Robotframework learning notes: environment installation and robotframework browser plug-in installation
软件测试工程师面试基础题(应届生和测试小菜必备)最基础的面试题
LVGL 8.2 menu from a drop-down list
潘多拉 IOT 开发板学习(HAL 库)—— 实验1 跑马灯(RGB)实验(学习笔记)
无心剑中译狄金森《灵魂择其伴侣》
Overview of currency
Machine learning interview preparation (I) KNN
LVGL 8.2 Simple Image button
LVGL 8.2 Simple Colorwheel
Arm新CPU性能提升22%,最高可组合12核,GPU首配硬件光追,网友:跟苹果的差距越来越大了...
RobotFramework学习笔记:环境安装以及robotframework-browser插件的安装