4

我正在尝试将我的应用程序移植到 64 位 Python。在我的 64 位 Windows 7 工作站(使用 E8600 Core 2 Duo)上一切正常,但是当我尝试在 Windows Server 2008 上执行相同的 Python 2.7.2 64 位程序(存储在网络位置)时带有 Xeon X5680 的 HPC 系统,它会立即失败(无论是否传递源文件),并显示如下对话框:

“应用程序无法正确启动(0xc00000cc)。单击确定关闭应用程序。”

我认为这两个处理器都应该支持 x86-64 指令集,所以我很惊讶它不能“正常工作”。查找微软的错误代码,我发现它的意思是“{Network Name Not Found}在远程服务器上找不到指定的共享名”。它在说什么?我尝试将 Python 64 位安装复制到本地驱动器,但它给出了与网络相关的相同错误。

我怎样才能解决这个问题?我是否缺少一些固有的不兼容性。32 位 Python 在我的工作站和 HPC 节点上都能完美运行。我宁愿不必重新编译 HPC 节点上的所有内容。

谢谢。

4

1 回答 1

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在高性能计算服务器)。

  • DLL 完全丢失了——我怀疑它们丢失了,因为你应该会收到类似以下内容的消息:

    程序无法启动,因为您的计算机缺少 python27.dll。尝试重新安装程序以解决此问题。

  • DLL 是错误的架构 -我无法(没有足够的耐心)安装 Python 2.7.2,但我能够STATUS_INVALID_IMAGE_FORMAT通过强制让 python 2.7.8 失败并出现更明智的错误 0xc000007b ( )它将 32 位 DLL 与 64 位 Python 一起使用。

于 2014-12-05T19:40:01.350 回答