完美解决Pyinstaller 打包exe 出现PermissionError: [Errno 13] Permission denie 问题

使用Pyinstall -f -w 打包文件时,最后出现PermissionError: [Errno 13] Permission denie 问题。截图如下:

问题分析:

1、 问题提示:

        在文件 "F:\myPythonProject\venv\lib\site-packages\PyInstaller\utils\win32\winutils.py", 第178行, 调用 with open(exe_path, 'wb') as fp打开文件时,发现文件被占用PermissionError: [Errno 13] Permission denied:

2、解决思路:关闭被占用的文件即可。

3、解决方法:

(1)撰写函数。如果文件被占用,则关闭文件句柄。

import win32file
def file_occupied(file_name): # occupied:占用
    # 自己加的模块,防止出现错误:PermissionError: [Errno 13] Permission denied:exe_path
    # 如果检测到文件被占用,则关闭该文件句柄
    try:
        fp = open(file_name,'wb')
    except:
        vHandle = win32file.CreateFile(file_name, win32file.GENERIC_READ, 0, None,win32file.OPEN_EXISTING,win32file.FILE_ATTRIBUTE_NORMAL, None)
        win32file.CloseHandle(vHandle)
    else:fp.close()

(2)打开并编辑F:\myPythonProject\venv\lib\site-packages\PyInstaller\utils\win32\winutils.py文件,添加file_occupied()函数

(3)文件中查找“with open(exe_path, 'wb') as fp:”语句,在每个语句之前调用函数:

file_occupied(exe_path)。如下图:
    # Rewrite the exe
    file_occupied(exe_path)
    with open(exe_path, 'wb') as fp:
        fp.write(data)

(4)保存文件,重新运行打包命令。

 (5)至此,完美解决 PermissionError: [Errno 13] Permission denie 问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值