在为我的程序创建自动更新程序的过程中,我无法成功下载.exe文件。Python - 从互联网下载.exe文件
我所做的一切是这样的:
import urllib
url = '--insert-url--'
f = urllib.urlopen(url)
file = f.read()
f.close
f2 = open('download.exe', 'w')
f2.write(file)
f2.close
我没有遇到错误,同时下载,但是当我尝试运行的执行,我收到以下错误:
The version of this file is not compatable with the version of Windows you're running. Check your computer's system information to see whether you need an x86(32-bit) or an x64 (64-bit) version of the program, and then contact the software publisher.
我自己上传执行,并且之前工作正常。
我也尝试了一些其他的下载方法,我发现,这导致了相同的错误,并且我也尝试上传到不同的网站以确保它不是这样。
有没有特殊的方法,我需要做到这一点?
编辑:
我做了一些进一步的测试与下载。我在另一台计算机上运行了该程序(我正在使用Spencer发布的内容) - 一个32位系统。 (Mine是一个64位)。我没有在那台计算机上看到错误,但是当我运行该程序时,命令行出现了,因为它是一个命令行样式.exe,我用它作为我的测试下载,但闪烁的白色入口栏的东西只是在我必须结束程序之前反弹到所有地方,所以显然有一些东西被损坏。
此外,下载过程可能与批处理文件?这将会更容易,因为程序将不得不重新开始使用新的更新,因为它使用的是全新的.exe。 (我要使用py2exe为使该计划的.exe)。
由于文件扩展名是'.exe',我假设你在Windows上这样做。尝试将'f2'文件的模式更改为''wb''以二进制模式写入。默认是文本模式,同时会将遇到的所有换行符(字节)更改为回车+换行符。 – martineau 2011-04-26 22:51:37
如果您手动下载(通过网页浏览器访问它)并执行它,您是否面临同样的问题? – 2011-04-26 22:58:54
@Senthil它工作正常,如果我手动下载它。 – 2011-04-27 01:14:32