完美解决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)保存文件,重新运行打包命令。

完美解决Pyinstaller 打包exe 出现PermissionError: [Errno 13] Permission denie 问题_第1张图片

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

你可能感兴趣的:(服务器,运维)