Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pycurl窗口中的64/32位整数问题_Python_Windows_32bit 64bit_Libcurl_Pycurl - Fatal编程技术网

Python pycurl窗口中的64/32位整数问题

Python pycurl窗口中的64/32位整数问题,python,windows,32bit-64bit,libcurl,pycurl,Python,Windows,32bit 64bit,Libcurl,Pycurl,我试图使用pycurl上传一个大文件(>2GB),但遇到了一个奇怪的问题。从64位nix机器(PycURL/7.19.3 libcurl/7.35.0)上载文件时,不会出现任何问题;从64位windows(PycURL/7.19.5.1 libcurl/7.37.0)机器运行相同代码时,上载失败 我遵循了一些指南,确保fs-type(NTFS)支持大文件,确保服务器端的nginx配置正确,但仍然不走运 进一步调试后,我发现从windows计算机发送的底层http请求具有错误的大小属性: Cont

我试图使用pycurl上传一个大文件(>2GB),但遇到了一个奇怪的问题。从64位nix机器(PycURL/7.19.3 libcurl/7.35.0)上载文件时,不会出现任何问题;从64位windows(PycURL/7.19.5.1 libcurl/7.37.0)机器运行相同代码时,上载失败

我遵循了一些指南,确保fs-type(NTFS)支持大文件,确保服务器端的nginx配置正确,但仍然不走运

进一步调试后,我发现从windows计算机发送的底层http请求具有错误的大小属性:

Content-Length: -1320951182
实际文件大小为:2974015488

如果我在windows计算机上签入python cli,我会得到:

>>> type(2974015488)
6: <type 'long'>
>>> type(2974015488)
2: <type 'int'>
>>类型(2974015488)
6: 
如果我在linux机器上签入python cli,我会得到:

>>> type(2974015488)
6: <type 'long'>
>>> type(2974015488)
2: <type 'int'>
>>类型(2974015488)
2: 
我想我需要在windows机器上以某种方式欺骗pycurl,以将值接受为int,我尝试了使用ctypes的多种变体,并摆弄了sys.maxint和sys.maxsize,但都不起作用

有没有办法告诉python使用64位整数而不是long

谢谢


另外,我需要使用pycurl,因为所有其他选项都会将文件转储到RAM中(是的,甚至是流模式下的请求)

我认为您混淆了问题

使用libcurl时,当文件大小大于2GB时,应将其作为curl\u off\t类型传递给选项。在包括win64在内的所有已知64位体系结构上,该类型应为64位


如果pycurl不这样做,那就是错误的。如果它真的这样做了,问题就出在别的东西上了…

int和long在python 3中是统一的,您尝试过更改版本吗?升级到v3.4,现在type(2974015488)返回int,但pycurl仍然给出:Content Length:-1320951182 python不识别CURLOPT\u infiresize\u LARGE或curl\u off\t参数,那么您知道下一步该去哪里了…=)