Python Pyinstaller权限OS错误权限被拒绝
我试图创建计算机视觉程序的exe,但遇到权限错误 通过anaconda提示符执行的命令(以管理员身份运行): 当exe成功构建并运行时,我在引用model.xml和model2.hdf5文件时出现以下错误。根据pyinstaller文档,在我的python代码中,文件引用到相对路径,如下所示:Python Pyinstaller权限OS错误权限被拒绝,python,pyinstaller,Python,Pyinstaller,我试图创建计算机视觉程序的exe,但遇到权限错误 通过anaconda提示符执行的命令(以管理员身份运行): 当exe成功构建并运行时,我在引用model.xml和model2.hdf5文件时出现以下错误。根据pyinstaller文档,在我的python代码中,文件引用到相对路径,如下所示: def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInsta
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设备上,我已经查阅了关于此主题的其他堆栈溢出问题,但似乎没有任何效果。语法如下所示:
——添加数据“
。因此,如果要添加多个具有不同名称的文件,则需要分别提供它们
因此,您的问题的正确格式是:
pyinstaller -F --name "Computer Vision" --add-data "model.xml;." --add-data "_model2_.hdf5;." <your_script_name>.py
pyinstaller-F--name“Computer Vision”--添加数据“model.xml;””--添加数据“\u model2.hdf5;”.py
另外,请记住,当您使用*.spec
时,任何参数都将被忽略,因此您需要手动编辑spec文件或在脚本上使用参数。语法如下:
——添加数据“
。因此,如果要添加多个具有不同名称的文件,则需要分别提供它们
因此,您的问题的正确格式是:
pyinstaller -F --name "Computer Vision" --add-data "model.xml;." --add-data "_model2_.hdf5;." <your_script_name>.py
pyinstaller-F--name“Computer Vision”--添加数据“model.xml;””--添加数据“\u model2.hdf5;”.py
另外,请记住,当您使用
*.spec
时,任何参数都将被忽略,因此您需要手动编辑spec文件或在脚本上使用参数。您的添加数据语法错误。如果要添加多个文件:pyinstaller--add data“model.xml;”--add data“\u model2..hdf5;”script.py
此解决方案是正确的,经过测试,可以作为控制台输入。按照相同的约定,我已使其通过spec工作,并使用以下内容:datas=[('model.xml','.'),('model2.hdf5','.')]您的添加数据语法错误。如果要添加多个文件:pyinstaller--add data“model.xml;”--add data“\u model2..hdf5;”script.py
此解决方案是正确的,经过测试,可以作为控制台输入。按照相同的约定,我已使其通过spec以及以下各项工作:datas=[('model.xml','。),('model2_wf.hdf5','。)]