首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyinstaller在创建exe时无法找到项目依赖项的dll

Pyinstaller在创建exe时无法找到项目依赖项的dll
EN

Stack Overflow用户
提问于 2019-08-14 09:10:37
回答 2查看 4.1K关注 0票数 1

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

请在下面找到错误日志。

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

代码语言:javascript
复制
pip3 install intel-openmp mkl

尝试向命令添加-路径,但由于系统中没有dll,所以pyinstaller无法找到它们:

代码语言:javascript
复制
pyinstaller --onefile --paths <Paths-where-dll-could-be> -c main.py

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

代码语言:javascript
复制
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

由于缺少的库不存在于系统中,所以请协助建立exe的有效方法。

EN

回答 2

Stack Overflow用户

发布于 2020-06-30 17:29:51

您的警告日志非常类似于我的: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")。

欣赏这不是一个非常优雅的解决方案,它更多的是关于毅力!祝你好运:)

票数 3
EN

Stack Overflow用户

发布于 2019-08-22 08:12:07

Windows在以下位置搜索DLL(我可能没有订购权):

-Current目录

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

路径中的-Directories

-Windows目录

-Windows系统目录

  1. 如果您的计算机上安装了Visual,请使用dumpbin计算DLL所依赖的内容。(dumpbin安装在这里C:\Program (x86)\Microsoft 14.0\VC\bin\dumpbin.exe)

垃圾桶/DEPENDENTS your.dll

这将列出DLL的依赖项。确保它们与您的exe包含在同一个目录中。

  1. 如果您没有Visual或dumpbin,请下载http://www.dependencywalker.com/,它将完成相同的任务
  2. 确保您有最新版本的pyinstaller以及。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57491610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档