修复 Python 中 OSError: [WinError 193] %1 Is Not a Valid Win32 Application

尝试运行可执行 ( .exe) 文件时收到错误。当可执行文件不是有效的 Win32 应用程序时会发生此错误。

这可能是由于本地计算机的处理器体系结构与可执行文件的体系结构不匹配造成的。双击该.exe文件时,您可能会收到错误消息:

Error: oserror: [winerror 193] %1 is not a valid win32 application.
Error loading %

什么是OSError: [WinError 193] %1 is not a valid Win32 application

使用 Python 进行开发时最大的挫折之一是处理 Python 错误。编写 Python 代码时可能会出现许多不同的错误,但最令人困惑的错误之一是OSError: [WinError 193] %1 is not a valid Win32 application.

当您尝试运行计算机上未正确安装的 Python 脚本或程序时,会发生此错误。

无论您是从命令行运行 Python 脚本还是双击与 Python 关联的文件,您都会收到错误消息。此错误也不同于语法错误或其他告诉您 Python 代码中存在错误的错误。

此错误通常是由计算机的 Python 可执行文件或.pyd文件的路径不正确引起的。

为什么会出现OSError: [WinError 193] %1 is not a valid Win32 application

每当您在浏览器中打开一个新窗口时,都会弹出一条错误消息,指出您尝试打开的应用程序不是有效的 Win32 应用程序。此错误发生在 Internet Explorer 浏览器中,这意味着您尝试打开的文件不是有效的应用程序。

这可能是一个关键的安全漏洞,因为任何文件都可以通过简单地修改其文件扩展名来标记为有效的 Win32 应用程序。使用常见的文件编辑软件很容易做到这一点。

因此,如果您不小心,您将打开一个与您无关的文件。发生此错误的最常见原因之一是因为您试图打开一个不是应用程序的文件。

例如,如果您有一些带有.html扩展名的 HTML 文件,它将无法工作。您需要将文件扩展名更改为.exe才能在浏览器中打开该文件。

另一个原因可能是文件已损坏或有其他问题。在这种情况下,您需要从源重新下载文件并尝试在您的计算机上打开它。

不同原因及解决方法OSError: [WinError 193] %1 is not a valid Win32 application

下面是错误的原因和解决方法。

Python 文件上的Pythonsubprocess模块

subprocess您在 Python 文件上调用 Python模块。Pythonsubprocess模块只接受命令行参数。

要运行 Python 代码,您需要创建一个可以通过模块运行的 Win32 可执行文件subprocess,或者subprocess通过将模块作为脚本运行在 Python 代码中使用模块。

有一个例子OSError。此代码将显示OSError,然后我们将提供针对此错误的解决方案。

import subprocess
subprocess.call(['hello.py', 'htmlfilename.htm'])

输出:

OSError: [WinError 193] %1 is not a valid Win32 application

hello.py在这种情况下,当我们在 Python 解释器中调用一个 Python 文件时subprocess,它会显示一个OSError.

这将表明hello.py不可执行。对于执行,可执行文件必须清晰如:

subprocess.call(['python.exe', 'hello.py', 'htmlfilename.htm'])

如果你想python.exe在搜索路径中可见,那么你应该传递将运行该地址的可执行文件的整个路径python.exe

import sys
import subprocess
subprocess.call([sys.executable, 'hello.py', 'htmlfilename.htm'])

Python 和 TensorFlow 的不兼容版本

Python 和 TensorFlow 的不兼容版本是OSError. 由于 Python 和 TensorFlow 的版本不兼容,此应用程序已停止运行。

如果您的计算机上安装的 Python 版本与构建 TensorFlow 时使用的 Python 版本不同,就会发生这种情况。您可以通过重新安装 TensorFlow 并更新您的PATH变量以指向正确的 Python 安装来解决此问题。

有时您可能会在 Windows 上使用 TensorFlow 运行 Python 脚本时遇到问题。如果你看到OSError: [WinError 193] %1 is not a valid Win32 application; 发生这种情况是因为 TensorFlow 是 64 位应用程序,而 Python 是 32 位应用程序,而您正尝试使用 64 位 TensorFlow 运行 32 位版本的 Python。

要解决此问题,您需要安装 32 位版本的 TensorFlow。

Python 环境争议

更新 Python 环境有点麻烦,因为有两种不同版本的 Python 环境可用:32 位和 64 位。许多人未能更新他们的 Python 环境。

此故障可能会导致您的 Python 环境发生故障并使您的计算机崩溃。如果您的电脑使用Python环境,您需要尽快更新。

如果您不使用 Python 环境,您应该查看一篇关于 Python 环境的好处的文章。

干净的 Python 环境是运行 Python 脚本的最佳方式。如果您在运行 Python 脚本时遇到 Windows 错误OSError: [WinError 193] %1 is not a valid Win32 application,则问题很可能与您的 Python 安装有关。

所以你需要确保你有一个干净的 Python 环境。

当您安装 Python 时,它会在您的桌面和“开始”菜单上的文件夹中添加一个快捷方式。您还可以安装pip,这样您就可以安装第三方 Python 模块。

但是,Python 会记录您安装的所有模块。这会使更新 Python 安装变得困难,因为在更新 Python 之前必须删除这些模块。

因此,您需要做的是删除包含 Python 安装文件的文件夹。对于很多人来说,这个文件夹是C:\Python27.

将 32 位 DLL 文件调用到 64 位进程中

您正在将 32 位 DLL 文件调用到 64 位进程中。当您有 32 位和 64 位版本的 DLL 时,通常会发生此错误。

例如,您尝试使用的功能在 32 位 DLL 和 64 位 DLL 中找到。64 位 DLL 覆盖 32 位 DLL 的功能。

使用 32 位 DLL 运行 64 位进程时,您会看到此错误。

在 64 位操作系统上运行 32 位应用程序时最常见的错误之一是错误消息:OSError: [WinError 193] %1 is not a valid Win32 application。错误消息%1中有一个代替您尝试运行的应用程序。

当您尝试运行不是有效的 Win32 应用程序的应用程序时会弹出错误。如果应用程序是 32 位应用程序,则需要安装该应用程序的 32 位版本。

如果应用程序是 64 位应用程序,则需要安装该应用程序的 64 位版本。

Semgrep直接运行

当您尝试Semgrep直接在 Windows 上启动时,这可能会很烦人。它可能导致OSError.

所以你应该避免semgrep直接在 Windows 上运行。

您转到“开始”菜单,看不到任何Semgrep.exe应用程序。它不在那里,因为Semgrep它不是典型的 Windows 应用程序,而是控制台应用程序。

如果您想直接在 Windows 上使用Semgrep,则必须通过cmd窗口启动它。最简单的方法是按住 Windows 键并按下R键。

这将打开运行提示。此时,您应该键入cmd并按Enter

您现在有一个命令提示符。您现在可以转到Semgrep安装目录并输入semgrep.

由于旧数据

上次安装 PyCharm 的旧数据可能会导致OSError. 因此,为避免此错误,您应该遵循此解决方案。

您在以下目录中有以前安装的 PyCharm 的旧数据:C:\Users\<your_name>\.ipython profile_default\history\.

此目录包含以前版本的 PyCharm 创建的文件,并且可以包含旧文件(例如,具有由以前版本的 PyCharm 生成的名称的文件)。

要防止将来创建此目录,请Do not create a .ipython directory在配置文件设置中选择该选项。请注意,这不会影响目录中已存在的文件的历史记录。