pyinstaller打包为.exe过程中的问题与解决方法

pyinsatller -F -w main.py 

打包常用指令

-i 给应用程序添加图标
-F 指定打包后只生成一个exe格式的文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,无界面(默认)
-w –windowed, –noconsole 使用窗口,无控制台
-p 添加搜索路径

问题一:.exe文件过大

打包命令:

pyinsatller -F -w main.py 

解决方法:
新建了一个虚拟环境,在其中重新安装了所需的库

安装虚拟环境依赖包:

pip install virtualenv
pip install virtualenvwrapper-win

找到自己python.exe所在位置,创建虚拟环境

mkvirtualenv -p="E:\\Python\python.exe" pyinenv

在需要打包的文件目录上输入cmd,使用如下命令切换到虚拟环境中

workon pyinenv

使用命令python main.py运行要打包的主程序,根据弹出缺少的模块依次下载。
注意:需要重新安装pyqt5和pyqt5-tools,以及pyinstaller等,这些运行过程中不会报错。

在下载的时候发现torch里面的cuda占的内存很大,索性在代码中取消了使用cuda加速的部分,并把torch-cuda删除,重新下了个没有cuda的torch、torchvision等

参考:解决打包exe文件过大问题

问题二:pyinstaller与opencv-python版本不兼容

打包完成后出现下面窗口。
在这里插入图片描述
解决:修改opencv-python的版本pip install opencv-python==4.5.1.48
我是用的python和pyinstaller的版本如下:

PyInstaller: 5.1
Python: 3.9.0
opencv-python:4.5.1.48

问题三:打开文件时提示***.pyd文件已存在

在这里插入图片描述
在a和p之间加入下面代码:

for b in a.binaries.copy():  # Traver the binaries.
    for d in a.datas:  #  Traverse the datas.
        if b[1].endswith(d[0]):  # If duplicate found.
            a.binaries.remove(b)  # Remove the duplicate.
            break

操作完之后换成这个打包命令:

pyinstaller main.spec

参考:Pyinstaller --onefile warning file already exists but should not
参考:WARNING: file already exists but should not: C:\Users\workAI\AppData\Local\Temp_MEI132522\torch_C
参考:【Python】Python打包exe报错makespec options not valid when a.spec file is given

问题四:pyinstaller打包时提示UPX is not available.

解决:
(1) 到官网 https://upx.github.io/ 下载了UPX(我的是Window 64版本), 下载下来是一个压缩包

(2) 解压得到 upx.exe文件

(3) 把exe文件拷贝到pyinstaller.exe目录下, 我的是 C:\Users\HASEE\Envs\pyinenv\Scripts

参考:pyinstaller打包时提示UPX is not available

最终,打包完成并能成功使用。(打包过程用了4分钟左右)
在这里插入图片描述
在这里插入图片描述

理解Python中的虚拟环境

理解Python虚拟环境

另:查看CUDA成功配置的方法

(1)在cmd里,注意是配置cuda的环境,我这里是在pytorch环境中,所以要先激活pytorch环境。
在这里插入图片描述
(2)在python文件中输入

import torch
print(torch.cuda.is_available())

返回True说明配置好了。

之前安装CUDA和pytorch的参考
参考:
1:CUDA版本与显卡驱动版本对照表(更新至2022.10.26 - CUDA11.8)
2:查看已经安装的CUDA的版本
3:win10+Anaconda+pytorch+CUDA11.1 详细安装指南
4:【Pytorch】pytorch安装(包含cuda详细安装教程)

y i , j = ∑ m = 0 h − 1 ∑ n = 0 w − 1 ∑ k = 0 c − 1 w m , n , k x i + m , j + n , k + b y_{i,j}=\sum_{m=0}^{h-1}\sum_{n=0}^{w-1}\sum_{k=0}^{c-1}w_{m,n,k}x_{i+m,j+n,k}+b yi,j=m=0h1n=0w1k=0c1wm,n,kxi+m,j+n,k+b

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值