使用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 问题
今天的文章完美解决Pyinstaller 打包exe 出现PermissionError: [Errno 13] Permission denie 问题分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/87002.html