python-3.x - 不断收到错误“OSError:[WinError 193] %1 不是有效的 Win32 应用程序”
问题描述
我正在尝试按照以下视频中的说明为 StyleGan 项目创建自定义数据集:https ://youtube.com/watch?v=QBUFrep8ljI
但是当我运行命令构建数据集时
python dataset_tool.py create_from_images datasets/custom_dataset ./chrimg
我收到以下错误:
File "dataset_tool.py", line 18, in <module>
import numpy as np
File "F:\Program Files\Python3\lib\site-packages\numpy\__init__.py", line 140, in <module>
from . import _distributor_init
File "F:\Program Files\Python3\lib\site-packages\numpy\_distributor_init.py", line 26, in <module>
WinDLL(os.path.abspath(filename))
File "F:\Program Files\Python3\lib\ctypes\__init__.py", line 364, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
每一步我都会遇到一些新的错误,我已经设法弄清楚了,但我对此一无所知。
解决方案
此错误表示该文件的 EXE 格式错误。在 Windows 操作系统文件(如 exe、dll、sys)中具有 PE 格式 - https://docs.microsoft.com/en-us/windows/win32/debug/pe-format 在您的情况下,Python 代码尝试加载 DLL在这行代码中:
self._handle = _dlopen(self._name, mode)
我相信 _dlopen 在内部使用来自 Windows API 的 LoadLibrary 会产生此错误,并且可能有以下原因:
- LoadLibrary 试图加载 dll 文件已损坏
- dll 文件和 phython 具有不同的体系结构(例如,您的 python 是 x86 而 dll 是 x64)。您可以使用procmon实用程序找出游戏中的确切文件。此外,您可以使用sigcheck来确定架构或此方法 - https://superuser.com/questions/358434/how-to-check-if-a-binary-is-32-or-64-bit-on-windows
推荐阅读
- microsoft-graph-api - 如何根据 appRoleId 过滤 appRoleAssignments?
- reactjs - 更新类型阴影节点中的属性“marginRight”时出错:RCTView null 未知值:10
- webpack - WebPack - 在重新编译主模块之前等待子模块编译
- python - 如何为 ttk 小部件的不同部分设置样式?
- python - pint:将地理 CRS 度数转换为海里
- c++ - 根据贡献指南构建 Boost.Hana 时出错
- python - 打印经过时间并通过单击按钮重置的计时器
- angular - 如何在 Angular 项目中正确导入 bootstrap scss 以避免重复样式?
- websocket - Websocket连接在同一场景中断开,页面上无法形成以下操作
- google-sheets - 如何在范围内使用 INDIRECT?