我正在尝试将我的应用程序移植到64位Python。在我的64位Windows 7工作站(带有E8600 Core 2 Duo)上一切正常,但当我尝试在Windows Server 2008上执行相同的Python 2.7.2 64位程序(存储在网络位置)时使用Xeon X5680的HPC系统,它立即失败(无论是否传递源文件),其对话框显示为:
“应用程序无法正确启动(0xc00000cc)。单击”确定“关闭应用程序。”
我认为这两个处理器都应该支持x86-64指令集,所以我很惊讶它不“只是工作”。 Looking up the error code from Microsoft,我发现它意味着“{网络名称未找到}”在远程服务器上找不到指定的共享名称。“它在说什么?我已经尝试将Python 64位安装复制到本地驱动器,但它提供了相同的网络相关错误。
我该如何解决这个问题?是否存在一些我缺少的固有不兼容性。 32位Python在我的工作站和HPC节点上都能很好地工作。我宁愿不必重新编译HPC节点上的所有内容。
感谢。
答案 0 :(得分:2)
@partofthething,根据您的评论,我不确定您的xcopy
有多广泛,但您可能错过了一些Python DLL。
例如,如果您使用标准Python安装程序并安装了Python C:\Python27
,那么您还应该拥有C:\Windows\System32\python27.dll
或C:\Windows\SysWOW64\python27.dll
。您可以将这些副本复制到python安装的根目录,然后从网络驱动器运行而不会出现任何问题,否则它们将在C:\Windows\*
位置被发现。
无论如何,上述应该都有效,但我已经了解了可能发生的事情:
您可能选择了非标准的安装目录 - 这没有多大意义,但是它可以以某种方式在您复制到网络的Python中表示(即您安装在C:\Python27-64
中,并且在HPC服务器上不存在)。
这些DLL完全丢失了 - 我怀疑他们是否遗失了,因为那时你应该得到类似的消息:
程序无法启动,因为您的计算机缺少python27.dll。尝试重新安装该程序以解决此问题。
这些DLL是错误的架构 - 我无法(没有足够的耐心)安装Python 2.7.2,但我能够通过强制它使用64位Python的32位DLL,让python 2.7.8失败并出现更明智的错误0xc000007b(STATUS_INVALID_IMAGE_FORMAT
)。