[英]Pyinstaller Permission OSError Permission Denied
我正在尝试创建计算机视觉程序的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设备上,我已经咨询了有关此主题的其他堆栈溢出问题,但似乎没有任何效果。
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文件或在脚本上使用参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.