基本缺失的DLL问题......
我试图使用Py2Exe打包我的Python程序,该程序使用了wxPython。 Py2Exe由于缺少DLL而一直失败,但我不知道在哪里可以找到它们。我试过搜索我的整个C:驱动器,但无法在任何地方找到它们,告诉我他们会丢失,而不仅仅是未注册。除了通过狡猾的安装Magical Missing DLL(没有我们承诺的crapware),谷歌搜索还没有帮助我找到它们。'位点。
我希望有人能够发现这些DLL之间的联系并告诉我他们来自哪里。这里有几个 - 每当我告诉Py2Exe排除一个DLL时,它说我错过了另一个并且列表似乎永无止境:
我正在运行Win 10(升级后的Win 8.1版本),并且我已经安装了2008,2010和2012版的Microsoft Visual C ++ Redistributables x86和x64版本。
我确实听到过Direct X问题论坛的提及 - Direct X应该已经安装了其中一些,但这与游戏有关,我不知道为什么我需要Direct X用于我的目的。我的wxPython GUI非常基础。
更新:运行' sfc / scannow'没有发现任何问题。
更新:我还安装了x86和x64版本的Microsoft Visual C ++ Redistributables 2015和Visual Studio 10 Express。
更新:我安装了DirectX 11以防万一。此外,看起来%windir%\ SysWOW64 \ downlevel中有一堆DLL没有找到。我将下层目录添加到我的路径中,并解决了一些丢失的DLL。我正忙着浏览清单,看看还有什么遗漏。
更新:最后设法让Py2Exe通过排除上面列出的DLL来输出可分发的。 This文章表明其中一些至少应该成为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错误。
答案 0 :(得分:-1)
在Secur32.dll
列表中添加dll_excludes
,您就可以开始了。