use*_*663 5 windows dll py2exe
一个基本的缺少 DLL 的问题...
我正在尝试使用 Py2Exe 来打包我的使用 wxPython 的 Python 程序。Py2Exe 由于缺少 DLL 而不断失败,但我不知道在哪里可以找到它们。我尝试搜索整个 C: 驱动器,但在任何地方都找不到它们,这告诉我它们丢失了,而不仅仅是未注册。谷歌搜索也没有帮助我找到它们,除非通过狡猾的“安装神奇的缺失DLL(我们保证没有垃圾软件;)”网站。
我希望有人能够发现这些 DLL 之间的联系并告诉我它们来自哪里。这里有一些 - 每次我告诉 Py2Exe 排除一个 DLL 时,它都会说我缺少一个不同的 DLL,而且这个列表似乎永无止境:
我运行的是 Win 10(从 Win 8.1 升级),并且安装了 x86 和 x64 版本的 Microsoft Visual C++ Redistributables 2008、2010 和 2012。
我确实在论坛上听说过 Direct X 问题 - Direct X 应该安装其中一些,但那与游戏有关,我不明白为什么我需要 Direct X 来实现我的目的。我的 wxPython GUI 非常基础。
更新:运行“sfc /scannow”没有发现任何问题。
更新:我还安装了 Microsoft Visual C++ Redistributables 2015 和 Visual Studio 10 Express 的 x86 和 x64 版本。
更新:我安装了 DirectX 11 以防万一。另外,%windir%\SysWOW64\downlevel 中似乎有一堆未找到的 DLL。我将下层目录添加到我的路径中,它解决了一些丢失的 DLL。我正忙着检查清单,看看还缺少什么。
更新:最终设法让 Py2Exe 通过排除上面列出的 DLL 来输出可分发文件。本文建议其中一些至少应该成为 Win 7 中架构更改的一部分 - 我不应该拥有它们(或它们的 Win 10 等效项)吗?它们来自哪里?将它们排除在 Py2Exe 操作之外会产生什么影响?
更新:Hans Passant 认为这是 py2exe 中的一个错误。然而,生成的 .exe 在我的计算机上运行良好,但在其他人的计算机上运行不佳 - 错误消息显示 DLL api-ms-win-core-libraryloader-l1-2-1.dll 无法找到。我在 setup.py 脚本中排除了它,所以我知道它没有与我的 .exe 一起打包。但为什么我仍然可以在我的机器上运行 .exe?我在整个 c: 驱动器中搜索了排除的 DLL,但找不到它们。我认为这不仅仅是 py2exe 的错误。