无法打开Python。错误0xc000007b

时间:2013-12-18 05:51:44

标签: python windows python-3.x

我最近一直在学习Python 3.我的上网本(32位Windows 7)没有问题我创建了一些简单的小程序。当我将它安装在我的上网本上时,我没有遇到任何问题,但是现在我已经进入了它,我想将它安装在我的桌面上,我有一个。 我的桌面是运行Windows 7的64位操作系统。就像我使用上网本一样,我去下载Python并安装了64位版本。

安装后,我开始使用Python CLI和GUI,但没有运气。它给了我这个错误。

"The application was unable to start correctly (0xc000007b). Click OK to close the application"

我也尝试重新安装,但没有运气。

我怀疑失踪了。但是我不完全确定。有谁知道是什么阻止我打开Python,我该如何修复它?我想尽快恢复工作。

12 个答案:

答案 0 :(得分:7)

这是NTSTATUS的{​​{1}}错误代码。几乎总是这意味着加载的是试图将32位DLL链接到64位进程,反之亦然。

如果您想尝试调试它,那么选择的工具是Dependency Walker。在Dependency Walker中打开python.exe可执行文件,然后使用配置文件菜单启动加载事件的日志记录。在某个地方会出现故障,您将能够看到哪个模块导致了该故障。这有望为解决问题指明方向。

然而,尝试调试这可能是浪费时间。卸载现有安装可能会更好,并尝试重新安装。也许选择不同的Python发行版。

我注意到您选择了64位版本。现在,在64位Python上支持64位扩展模块并不像32位Python那样强大。它确实存在,但它们的模块可能更难以安装和安装。您可能会考虑下次安装32位Python。

答案 1 :(得分:4)

请确保Python3.dll与python.exe具有相同的版本和相同的体系结构(32/64)。我通过用32位版本替换它修复了这个错误。

答案 2 :(得分:1)

提及janne-karilaPython 3.5,Microsoft Visual Studio 2015 redistributable(在本例中为64位版本)

答案 3 :(得分:1)

这可能不会回答你的问题,但我的回答是针对一个非常具体的案例,当你在不影响文件的情况下刷新Windows"修复Windows 8.1 PC。

如果您这样做,当您尝试在Windows刷新后运行Python时,您会收到此错误。

要修复此错误,只需在刷新Windows之前在安装python的同一文件夹中重新安装PY即可。如果你试图安装任何其他文件夹,如username / appdata / ...文件夹,PY安装程序将停留在初始化。

您可能还会收到另一个错误消息" api-ms-win-crt-runtime-l1-1-0.dll缺失"。要修复,请转到windows.old文件夹并获取上述名称的dll文件并将其粘贴到PY文件夹中。与其他人建议的一样,请确保已安装Microsoft Visual Studio 2015可再发行组件。

在Windows刷新之后遇到这个错误是如此罕见,根据谷歌搜索似乎没有其他人经历过,所以我虽然在这里为那个罕见的不幸的人分享。

答案 4 :(得分:0)

显然错误代码代表STATUS_INVALID_IMAGE_FORMATsource),看起来它并不特定于Python。您可以尝试重新安装程序,重新启动,运行CHKDSK /rsource)。它可能也与Microsoft Visual C ++可再发行组件包有关,正如Janne Karila和this thread建议的那样。

stackoverflow question看起来也有一些有用的信息。

答案 5 :(得分:0)

我也遇到了这个问题。所以我卸载了python3 64位版本并安装了32位版本,之后我能够在Windows 8中成功启动python3。 (我有一台64位笔记本电脑)。

答案 6 :(得分:0)

只需下载最新版本的Microsoft Visual C ++可再发行软件包..

我遇到了同样的问题..

答案 7 :(得分:0)

我发现了同样的错误。使用依赖walker,我发现大量的DLL丢失了。而是去复制我用虚拟环境去的所有DLL。它将为Python创建另一个环境。

首先,正常安装python。复制,Python.exe路径。就我而言,它是

C:\Python\python

它将用于安装Python库。然后,使用命令提示符,我使用pip下载并安装virtualenv(虚拟环境)。为此,请将目录更改为pip.exe所在的目录,该目录位于Scripts文件夹中。现在,运行以下命令安装virtualenv:

C:\Python\python pip install virtualenv

它将安装虚拟环境。

现在,创建一个文件夹来保存虚拟环境并将目录更改为该文件夹并运行以创建以下内容以创建环境:

virtualenv --no-site-packages [environment name]

它将创建环境。

现在,将子目录更改为[environment name]文件夹中的Scripts。有一个激活文件运行它,在我的情况下它就像:

C:\Python\virtualenv\env\Scripts activate

env是这里的[环境名称]。

如果您将其激活,则每个命令都将如下所示:

(env) C:\Python\python

这结束了。现在,您可以使用此安装任何python库。做任何事,你想用Python。

此外,要停用环境,同样的deactivate.bat位于脚本文件夹中。

答案 8 :(得分:0)

您应该在“环境变量”中删除python的旧路径并享受;)

答案 9 :(得分:0)

对我来说,问题是,我在64位计算机上安装了32位版本。希望它可以帮助某个人。

答案 10 :(得分:0)

就像许多人所说的那样,由于INVALID_IMAGE_FORMAT,Windows无法加载python.exe本身或其依赖的DLL之一:

  • python.exe的位数不受支持。在64位Windows上支持32位。不是32位系统上的64位(解决方案:安装32位python,再见)。

  • python.exe或其一个DLL已损坏(可能未损坏)

  • 其中一个依赖的DLL与EXE的位数不同:

    1. python.exe(例如32位)需要python * .dll(python3.dll或python27.dll)。它将安装到Windows System32 / SysWOW64文件夹中。 DLL的位数正确(32位)。

    2. 有些东西会用64位版本覆盖它,或者将64位版本放置在搜索PATH中。

    3. 当您运行python.exe(32位)时,Windows搜索python * .dll,它找到的第一个是64位。 32位EXE无法通常加载64位DLL。

典型示例:

  • TortoiseHg将自己的python副本(.exe和.dll)安装到其自己的文件夹中,并将其自身添加到PATH中。位数可以不同(例如64位),通常与平台位数相匹配。

  • 另一处安装了其他位数的Python的安装会覆盖DLL(它不应该,它们有不同的System32 s,但谁知道)

诊断:

  • Dependency Walker用64位图标标记64位DLL。验证python.exepython*.dll的图标是否匹配。右键单击->“显示完整路径”以查看DLL的来源。

简单的解决方案:

  1. 也许您在其他地方有另一个运行正常的Python副本?检查一下。

  2. 重新安装Python,最好在平台版本中安装(64位用于64位操作系统,32位用于32位)。是的,很多人都这么说,但是现在您知道为什么需要这样做了。

  3. PATH中移除违规者。虽然此方法可以修复您的Python,但会破坏违规者,并且某些(TortoiseHg Explorer插件)需要PATH。所以也许让他们妥协并选择#2。

答案 11 :(得分:0)

就我而言,我同时安装了32位和64位版本的python msi。它们都安装在同一文件夹c:\ python32中。我以为msi可以防止此类冲突,但是不会。