【问题标题】:Pyinstaller unable to find dlls for the project dependencies while creating exePyinstaller 在创建 exe 时无法找到项目依赖项的 dll
【发布时间】:2019-08-14 09:10:37
【问题描述】:

Pyinstaller 未能找到将依赖项绑定到一个 exe 所需的某些 dll。

请在下面找到错误日志。

我们已经尝试安装这些库:

pip3 install intel-openmp mkl

尝试在命令中添加--paths,但由于系统中没有dll,pyinstaller无法找到它们:

pyinstaller --onefile --paths <Paths-where-dll-could-be> -c main.py

这些库丢失并在日志中显示为警告。

364427 WARNING: lib not found: impi.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_blacs_intelmpi_ilp64.dll
365396 WARNING: lib not found: mpich2mpi.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_blacs_mpich2_lp64.dll
366241 WARNING: lib not found: msmpi.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_blacs_msmpi_lp64.dll
368089 WARNING: lib not found: msmpi.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_blacs_msmpi_ilp64.dll
369270 WARNING: lib not found: pgf90.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_pgi_thread.dll
369997 WARNING: lib not found: pgc14.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_pgi_thread.dll
370791 WARNING: lib not found: pgf90rtl.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_pgi_thread.dll
373039 WARNING: lib not found: mpich2mpi.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_blacs_mpich2_ilp64.dll
374289 WARNING: lib not found: impi.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\Library\bin\mkl_blacs_intelmpi_lp64.dll
377030 WARNING: lib not found: torch_python.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\lib\site-packages\torch\_C.cp36-win_amd64.pyd
378792 WARNING: lib not found: c10_cuda.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\lib\site-packages\torchvision\_C.cp36-win_amd64.pyd
379568 WARNING: lib not found: torch.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\lib\site-packages\torchvision\_C.cp36-win_amd64.pyd
380290 WARNING: lib not found: caffe2.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\lib\site-packages\torchvision\_C.cp36-win_amd64.pyd
381126 WARNING: lib not found: c10.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\lib\site-packages\torchvision\_C.cp36-win_amd64.pyd
382053 WARNING: lib not found: torch_python.dll dependency of c:\users\1311654\appdata\local\programs\python\python36\lib\site-packages\torchvision\_C.cp36-win_amd64.pyd

由于缺少的lib dll不在系统中,请协助构建exe的有效方法。

【问题讨论】:

    标签: python windows dll pytorch pyinstaller


    【解决方案1】:

    您的警告日志与我的非常相似:PyInstaller .exe file terminates early without an error message

    因此我假设,尽管有这些警告,PyInstaller 仍然可以成功构建您的可执行文件?这些步骤(根据上面的链接)对我有用:

    1. 使用 PyInstaller 生成一个文件夹包。
    2. 在用于编写程序的 Python 环境中,搜索所有“dll”文件,然后将它们复制并粘贴到包的 dist 文件夹中。
    3. 就我而言,这使我的可执行文件能够成功运行。
    4. 然后您可以通过系统地删除粘贴到 dist 文件夹中的 DLL 文件来进行实验,以确定哪些是必要的,哪些是多余的。
    5. (可选)如果您更喜欢单文件捆绑包,则需要执行第 4 步来确定运行可执行文件所需的基本 DLL 文件,以便您可以仅将这些 DLL 作为数据文件添加到您的单一文件构建(在我的情况下,它只是一个!-“libiomp5md.dll”)。

    感谢这不是一个非常优雅的解决方案,它更多的是坚持不懈!祝你好运:)

    【讨论】:

      【解决方案2】:

      Windows 在以下位置搜索 DLL(我可能没有正确的顺序):

      -当前目录

      -包含请求 DLL(直接或间接)的 EXE 的目录

      -PATH 中的目录

      -Windows 目录

      -Windows系统目录

      1. 如果您的计算机上安装了 Visual Studio,请使用 dumpbin 找出是什么 您的 DLL 取决于。 (dumpbin 安装在这里 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\dumpbin.exe)

      dumpbin /DEPENDENTS your.dll

      这将列出 DLL 依赖项。确保它们包含在同一目录中 作为你的 exe。

      1. 如果您没有 Visual Studio 或 dumpbin,请下载 http://www.dependencywalker.com/ 它会完成同样的事情

      2. 确保您也拥有最新版本的 pyinstaller。

      希望这会有所帮助。

      【讨论】:

      • 但是对于 dumpbin,我们需要一个 .dll 来了解所需的依赖项,但是在运行 Pyinstaller 之后,我得到了一个 .exe 并且没有可以运行的主要 .dll 文件垃圾箱命令。希望我清楚自己的疑问
      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      相关资源
      最近更新 更多