【问题标题】:Python code gets Memoryerror in API RequestPython 代码在 API 请求中获取 Memoryerror
【发布时间】:2021-06-03 00:30:20
【问题描述】:

这里是python代码sn-p

with open(path, "rb") as sample:
payload = {

    'options': (None,json.dumps (options),'application/json'),'filename':(os.path.basename(path), sample,'application/octet-stream')
}


response = requests.request ("POST", url, headers=headers, files=payload, verify=False)

文件通常为 2GB。我需要上传,但在上传时出现内存错误。

 File "C:\Users\H3731736\PycharmProjects\website\venv\lib\site-packages\urllib3\filepost.py", line 92, in encode_multipart_formdata
body.write(b"\r\n")

错误:内存错误

请帮助我了解为什么会发生这种情况以及如何解决。

【问题讨论】:

  • 你能准确地说出你想要达到的目标是什么吗?
  • @TanishqVyas 我正在尝试将文件上传到门户网站,但正如您所见,由于在读取内存中的文件时内存已满,我收到了内存错误。较小的文件可以正常工作,但对于较大的文件,它会显示错误。
  • 你使用 Python 32bit 版本吗?
  • @AribMuhtasim 是的
  • @HIMANSHUCHORSIYA 当您尝试将整个文件准备好到变量中时,RAM 已满,而这正是问题所在。也许你应该考虑研究 websockets。这样您就可以分批发送文件,而不是一次性发送。也许这会有所帮助。

标签: python python-3.x


【解决方案1】:

我在 VM 上对此进行了测试,发现 Python 32 位版本由于地址空间的原因而具有必要的内存上限。 64 位有更多的地址空间,切换到 64 位版本可以解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-18
    • 2017-05-08
    • 2014-10-21
    相关资源
    最近更新 更多