IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Pycharm项目使用pyinstalle打包过程中问题及解决方案 -> 正文阅读

[Python知识库]Pycharm项目使用pyinstalle打包过程中问题及解决方案

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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:00:04  更:2022-06-29 19:00:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:09:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码