Pyinstaller权限OSError权限被拒绝

时间:2019-07-07 16:37:04

标签: python pyinstaller

我正在尝试创建计算机视觉程序的exe,但是遇到权限错误。

通过anaconda提示符命令(以管理员身份运行):

pyinstaller -F --name "Computer Vision" --add-data "model.xml;_model2_.hdf5" C:\Users\me\PycharmProjects\project\project_CV.spec

当exe成功构建并运行时,在引用我的model.xml和model2.hdf5文件时出现以下错误。在我的python代码中,根据pyinstaller文档,文件被引用到相对路径,如下所示:

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    try:
        # PyInstaller creates a temp folder and stores path in _MEIPASS
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

但是,当我运行exe时,找到了文件,但是由于权限错误而无法访问它们:

OSError: Unable to open file, errno = 13, error message = permission denied

我在运行python 3.6和pyinstaller 3.4的Windows设备上,我已经咨询了有关此主题的其他堆栈溢出问题,但似乎无济于事。

1 个答案:

答案 0 :(得分:0)

add-data语法如下:

--add-data "<path to file or files>;<path on target>"。因此,如果要添加多个具有不同名称的文件,则需要单独提供它们。

所以您问题的正确格式是:

pyinstaller -F --name "Computer Vision" --add-data "model.xml;." --add-data "_model2_.hdf5;." <your_script_name>.py

另外,请记住,当您使用*.spec时,任何参数都将被忽略,因此您需要手动编辑spec文件或在脚本上使用参数。