2013-04-04 12 views
6

我正在使用setuptool的bdist_wininst为我的项目构建一个安装EXE。但是,我发现当我真正在Win7-64bit机器上运行所述安装程序(带有Python 2.7.3)时,出现如下所示的运行时错误:http://i.imgur.com/8osT3.jpg。 (只有64位安装程序针对python-2.7 64位; 32位(在python2.7 32位上)显示正常)我可以单击确定,安装程序结束,但对最终用户来说这肯定看起来很差。使用setup.py构建的Windows安装程序bdist_wininst在安装时会触发RuntimeError。我该如何解决?

任何想法如何解决它?

+0

只是为了clairify,Py2.7.3 + Win6_64bit不起作用。 Py2.7.4 + Win7_32bit的作品?我假设你没有正确地绑定运行时库。你如何打包你的东西? – Torxed

+0

我在ubuntu Linux 12.10上打包生成exe文件的bdist_wininst。 distutils代码(command/bdist_wininst.py)只会将信息(请参阅create_exe)附加到存根安装程序(wininst-9.0.exe和wininst-9.0-amd64.exe),并在/usr/lib/python2.7/distutils/中找到命令)。请注意,我稍微修改了代码以使用正确的exe(使用python2.6 +的bug)。 – UsAaR33

+0

出于好奇,你有没有试图在实际的Windows机器上绑定一切?我很害怕整个问题是因为原始源缺少Windows安装程序可能需要的许多dll,并且包的包装不完整。 – Torxed

回答

1

也许Visual C++可再发行组件包丢失或损坏,请尝试(重新)安装Microsoft Visual C++ 2008 SP1/2010可再发行组件包(x64)或任何其他版本。

+0

我的歉意;原来的问题我不清楚。安装EXE是在w/setuptool的bdist_wininst中建立的,其中正确的EXE应该已经存在。 – UsAaR33

+0

然后你有一个不正确的依赖关系,当你正在构建安装exe文件(也许某处有一个x86-x64设置,或者你必须在某种配置中映射正确的msvcr {version [80/100]}/msvcp [80/100] } dll)。 –

+0

再次,EXE已经存在..它作为distutils的一部分分发。 bdist_wininst命令(见主要注释)只是将数据附加到它 – UsAaR33

相关问题