bw4*_*4sz 11 python windows opencv pyinstaller
我有一个使用OpenCV的Python 3.5 64位程序(Windows的tensorflow需要).我用pyinstaller分发它.
我用Windows 10构建了我的程序
/c/Python35/Scripts/pyinstaller -c DeepMeerkat.spec
Run Code Online (Sandbox Code Playgroud)
在我的计算机上,.exe构建并运行完美.在任何其他非Windows 10计算机上
上
import cv2
Run Code Online (Sandbox Code Playgroud)
返回
ImportError:DLL加载失败:找不到指定的模块.
我可以在pyInstaller线程上看到关于它的大量讨论,但我不能完全告诉如何将它付诸实践.依赖性walker说我缺少一些DLL
api-ms-win-crt-**.dll
Run Code Online (Sandbox Code Playgroud)
好的,从pyInstaller线程,我知道这些DLL存在
C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs
Run Code Online (Sandbox Code Playgroud)
基于架构的多个子文件夹下.
我尝试添加到我的.spec文件中
pathex=["C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/"],
Run Code Online (Sandbox Code Playgroud)
或者我的特定架构
pathex=["C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/arm"],
Run Code Online (Sandbox Code Playgroud)
我认为这是在这里建议的
"安装适用于Windows 10的Windows软件开发工具包(SDK)并展开.spec文件以包含所需的DLL,请参阅上述链接中的"分发使用通用CRT的软件",编号为6.
那没有任何效果.我收到了数以百计的错误
121472 WARNING: lib not found: api-ms-win-crt-runtime-l1-1-0.dll dependency of c:\python35\DLLs\_ssl.pyd
Run Code Online (Sandbox Code Playgroud)
但我可以在这里看到DLL
C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\arm
Run Code Online (Sandbox Code Playgroud)
那么我就把整个文件夹复制到了posthoc
cp -r "C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/" dist/Lib/
Run Code Online (Sandbox Code Playgroud)
但目前尚不清楚如何将这些连接到.exe.显然,让pyInstaller事先知道是可取的.
我也试过了
/c/Python35/Scripts/pyinstaller --path "C:/Program Files (x86)/Windows Kits/10/Redist/ucrt/DLLs/arm" -c DeepMeerkat.spec
Run Code Online (Sandbox Code Playgroud)
它仍然没有找到它们
我也尝试将该文件夹添加到PATH.有任何想法吗?
我需要自己做这件事,但还没有。当我这样做时,我会尝试发布我的完整解决方案。同时...
我认为您可能必须明确请求将它们包含在内,而不仅仅是扩展搜索路径。
https://pythonhosted.org/PyInstaller/spec-files.html#adding-binary-files
可能使用Tree他们提到的类来为您收集所有文件。
https://pythonhosted.org/PyInstaller/advanced-topics.html#the-tree-class
| 归档时间: |
|
| 查看次数: |
4394 次 |
| 最近记录: |