PermissionError: [Errno 13] Permission denied when saving a txt file with pyinstaller

PermissionError: [Errno 13] Permission denied when saving a txt file with pyinstaller

我想创建一个基于 tkinter 代码的简单 .exe 文件。现在,我只希望 .exe 在单击按钮时保存 .txt 文件。

当运行使用 tkinter 代码时,它可以正常工作。

但是,当我尝试 运行 使用 pyinstaller 生成的 .exe 文件时,出现错误:

PermissionError: [Errno 13] Permission denied "C:\Users\path\to\file.txt"

我已尝试以管理员身份运行 .exe 文件,但错误仍然存​​在。

这是简单的 tkinter_code:

import tkinter as tk

def test() : 
    directory = r'C:\Users\Path\to\file.txt'
    with open(directory, 'w') as f:
        print(directory)
        f.write('readme')
        
#Instantiate the window
my_w = tk.Tk()
my_w.geometry("800x600")  # Size of the window 
my_w.title('test')

b2 = tk.Button(my_w, text='Generate file', 
   width=20,command = lambda:test())   
b2.grid(row = 1, column = 1)


if __name__ == '__main__':
    my_w.mainloop()

我创建 .exe 使用:

pyinstaller --onefile test.py

如有任何帮助,我们将不胜感激,在此先致谢。

我通过卸载并重新安装 anaconda(从 Python 3.7 到 Python 3.9)设法让它工作

您正在尝试将文件保存在 C:\Users\path\to\file.txt 中,因此出现权限错误。 open() 命令不允许编辑 PC 中的用户目录。因此,如果您尝试打开或保存或编辑其中的任何文件,您将收到此错误,因为它不是管理文件。只有管​​理员可以编辑该目录中的文件。您可以尝试 Run file as administrator 选项,但我不知道它是否有效。将文件保存在任何其他驱动器中可能会起作用。 (取决于您保存文件的目录)