Python代码在API请求中获取Memoryerror
下面是python代码片段Python代码在API请求中获取Memoryerror,python,python-3.x,Python,Python 3.x,下面是python代码片段 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&quo
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")
错误:MemoryError
请帮助我理解为什么会发生这种情况以及如何解决这个问题。我在一个虚拟机上测试了这个问题,发现Python 32位版本由于地址空间的原因有必要的内存上限。64位的地址空间大得多,切换到64位版本解决了这个问题。你能确切地告诉我你想要实现什么吗?@TanishqVyas我正试图将文件上传到门户网站上,但正如你所看到的,我得到了memoryerror,因为它的ram在内存中读取文件时变满了。较小的文件可以正常工作,但对于较大的文件,它会显示错误。是否使用Python 32位版本?@AribMuhtasimyes@HIMANSHUCHORSIYA当您试图将整个文件准备到一个变量中时,RAM会变满,这正是问题所在。也许你应该考虑浏览网站。这样,您就可以将文件分块发送,而不是一次性发送。也许那会有帮助。