解决Operation not supported: ‘/home/public‘,TypeError:write_error() got an unexpected keyword argument

Operation not supported: ‘/home/public’,TypeError: write_error() got an unexpected keyword argument ‘exc_info’.

在程序中进行文件相关操作时遇到类似下面的问题。

[E 210728 14:30:54 web:2242] 500 POST /api/file/upload (127.0.0.1) 143.92ms
[E 210728 14:30:54 web:1784] Uncaught exception POST /api/file/upload (127.0.0.1)
    HTTPServerRequest(protocol='http', host='127.0.0.1:8080', method='POST', uri='/api/file/upload', version='HTTP/1.1', remote_ip='127.0.0.1')
    Traceback (most recent call last):
      File "/Users/frank/PycharmProjects/FileTransfer/venv/lib/python3.8/site-packages/tornado/web.py", line 1699, in _execute
        result = await result
      File "/Users/frank/PycharmProjects/FileTransfer/src/base/web.py", line 175, in wrapped_func
        await func(request, *args, **kw_args)
      File "/Users/frank/PycharmProjects/FileTransfer/src/handler/file_transfer.py", line 55, in post
        os.makedirs(current_path)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 213, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 213, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 213, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 223, in makedirs
        mkdir(name, mode)
    OSError: [Errno 45] Operation not supported: '/home/public'
[E 210728 14:30:54 web:1216] Uncaught exception in write_error
    Traceback (most recent call last):
      File "/Users/frank/PycharmProjects/FileTransfer/venv/lib/python3.8/site-packages/tornado/web.py", line 1699, in _execute
        result = await result
      File "/Users/frank/PycharmProjects/FileTransfer/src/base/web.py", line 175, in wrapped_func
        await func(request, *args, **kw_args)
      File "/Users/frank/PycharmProjects/FileTransfer/src/handler/file_transfer.py", line 55, in post
        os.makedirs(current_path)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 213, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 213, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 213, in makedirs
        makedirs(head, exist_ok=exist_ok)
      File "/Users/frank/.pyenv/versions/3.8.6/lib/python3.8/os.py", line 223, in makedirs
        mkdir(name, mode)
    OSError: [Errno 45] Operation not supported: '/home/public'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/Users/frank/PycharmProjects/FileTransfer/venv/lib/python3.8/site-packages/tornado/web.py", line 1214, in send_error
        self.write_error(status_code, **kwargs)
    TypeError: write_error() got an unexpected keyword argument 'exc_info'

解决方案:

主要由于是没有目录操作权限造成的。

可以通过下面方式指定目录:
1)指定跟程序相同的父目录
2)指定到 /tmp 目录为父目录
3)指定其他可以允许第三方操作的目录
4)创建一级父目录,并修改其权限为 777

注意:
mac 和 linux 系统相同的目录,可访问权限可能是不一样的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码讲故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值