为什么OpenCV(cv2.pyd)的Python构建如此之小?
我想在Python中使用OpenCV,所以我下载了OpenCV for Windows,解压缩后得到了一个~3.7GB的文件夹。令我惊讶的是,我唯一需要的文件是cv2.pyd,它与C版本(674MB)相比非常小(11MB)。我只是简单地将它复制到我的pythonlibpackages文件夹中,而没有向我的路径添加任何内容,它工作得非常好为什么OpenCV(cv2.pyd)的Python构建如此之小?,python,opencv,Python,Opencv,我想在Python中使用OpenCV,所以我下载了OpenCV for Windows,解压缩后得到了一个~3.7GB的文件夹。令我惊讶的是,我唯一需要的文件是cv2.pyd,它与C版本(674MB)相比非常小(11MB)。我只是简单地将它复制到我的pythonlibpackages文件夹中,而没有向我的路径添加任何内容,它工作得非常好 我不知道Python绑定是如何工作的,我认为它应该在幕后调用C/C++实现。然而,cv2似乎并不需要任何C/C++库。对我来说,这简直是个魔术。很可能与静态链接
我不知道Python绑定是如何工作的,我认为它应该在幕后调用C/C++实现。然而,cv2似乎并不需要任何C/C++库。对我来说,这简直是个魔术。很可能与静态链接和使用或中的所有可能技巧有关 OpenCV使用as构建系统,该系统提供“MinSizeRel”构建类型。它似乎自动应用了大部分这些技巧。找不到任何关于这方面的好文档,因此:
(遵循我的原始答案,但没有完全解决实际问题) 获取opencv for python更方便的方法可能是从以下位置下载: 运行安装程序后,您将在
c:\python27\lib\site包中找到cv2.pyd
就我们而言,.pyd
文件与.dll
相同:
这意味着我们可以用它来调查。这就是我们看到的:
此图表示cv2.pyd
与包含实际功能的opencv库动态链接。这些文件占用了大约45MB的磁盘空间。但我的站点包文件夹中甚至没有这些OpenCV DLL文件。