繁体   English   中英

Python Flask POST权限错误

[英]Python Flask POST Permission Error

我正在使用flask作为我的对象检测REST API的python框架,它在MacOS上运行良好。 该应用程序将获取上传的图像,并对其进行处理。 我正在发送POST请求,以将图像上传到服务器。 只是为了让您深入了解我的代码: 看图片

@app.route('/post', methods=['GET', 'POST'])
def post():
  form = PhotoForm(CombinedMultiDict((request.files, request.form)))
  if request.method == 'POST' and form.validate():
    with tempfile.NamedTemporaryFile() as temp:
      form.input_photo.data.save(temp)
      temp.flush()
      print(temp.name)
      result = detect_objects(temp.name)

    photo_form = PhotoForm(request.form)
    return render_template('upload.html',
                           photo_form=photo_form, result=result)
  else:
    return redirect(url_for('upload'))

但是,当我尝试在Windows 10上运行相同的应用程序时,出现以下服务器错误500: 看图片

127.0.0.1 - - [08/Feb/2018 15:32:24] "GET / HTTP/1.1" 200 -
C:\Users\KUGUOG~1.KAA\AppData\Local\Temp\tmpw6y5g2f9
[2018-02-08 15:32:37,369] ERROR in app: Exception on /post [POST]
Traceback (most recent call last):
  File "c:\python36\lib\site-packages\flask\app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\python36\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\python36\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\python36\lib\site-packages\flask\_compat.py", line 33, in reraise
    raise value
  File "c:\python36\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\python36\lib\site-packages\flask\app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\kuguoglu.berk.kaan\Desktop\ObjectDetectionRestApi\app.py", line 188, in post
    result = detect_objects(temp.name)
  File "C:\Users\kuguoglu.berk.kaan\Desktop\ObjectDetectionRestApi\app.py", line 149, in detect_objects
    image = Image.open(image_path).convert('RGB')
  File "c:\python36\lib\site-packages\PIL\Image.py", line 2543, in open
    fp = builtins.open(filename, "rb")
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\KUGUOG~1.KAA\\AppData\\Local\\Temp\\tmpw6y5g2f9'
127.0.0.1 - - [08/Feb/2018 15:32:37] "POST /post HTTP/1.1" 500 -

我浏览了很多帖子和论坛,我认为这可能与Windows OS中的文件许可有关。 正如它明确指出权限错误,到目前为止我已经阅读的所有相关文章都提到了文件权限,我认为它与程序本身无关。 如果是这种情况,那么最初它在MacOS上将无法正常运行。

到目前为止,我已经尝试监听不同的端口,包括80和8080,并通过PyCharm终端和命令提示符以管理员身份运行该程序。 但是,这些并没有解决问题。

我正在使用Python 3.6.3,Flask 0.12.2,以防它帮助您找出问题所在。 如果需要,请随时向我询问更多详细信息。 如果可以的话,我很乐意提供。

干杯。

编辑 :我在以下两个帖子中尝试了一些建议的方法,但是,所有方法都失败了。

如何在Windows上以提升的特权运行python脚本

从python脚本中请求UAC提升-1

从python脚本中请求UAC高程-2

PermissionError:[Errno 13]权限被拒绝

此外,我禁用了以下目录的只读选项,以查看它是否可以解决问题,但不能解决问题。

C:\\ Users \\ KUGUOG〜1.KAA \\ AppData \\

您是否正在使用pycharm?

如果使用cmd运行,请首先以管理员身份运行命令。

找到cmd.exe时,右键单击它,然后单击run as administrator

如果您正在使用pycharm,请也以管理员身份运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM