为什么OpenCV(cv2.pyd)的Python构建如此之小?

2024-06-16 12:49:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Python中使用OpenCV,所以我下载了opencvforwindows,解压缩后得到了一个大约3.7GB的文件夹。令我惊讶的是,我需要的唯一文件是cv2.pyd,与C构建(约674MB)相比,这个文件太小了(~11MB)。我只是简单地将它复制到Python lib packages文件夹中,没有添加任何内容到我的路径中,它工作得很好。在

我不知道Python绑定是如何工作的,我认为它应该调用引擎下的C/C++实现。然而,CV2似乎不需要任何C/C++库。对我来说就像是魔法。在


Tags: 文件引擎路径文件夹内容libpackages魔法
1条回答
网友
1楼 · 发布于 2024-06-16 12:49:07

它很可能与静态链接和使用"Reducing Executable Size"或{a2}中所有可能的技巧有关

OpenCV使用cmake作为构建系统,它提供“MinSizeRel”构建类型。它似乎自动应用了大部分的技巧。找不到任何好的文档,因此:[citation needed]


(遵循我最初的回答,但没有完全解决实际问题)

获取opencvforpython的更方便的方法是从:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载它

运行安装程序后,您将在c:\python27\lib\site-packages中找到cv2.pyd

就我们而言,.pyd文件与.dllhttp://docs.python.org/2/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

这意味着我们可以用Dependency Walker来研究它。我们看到的是:

cv2.pyd

此图片表示cv2.pyd与包含实际功能的opencv库动态链接。这些磁盘占用大约45 MB的磁盘空间。在

相关问题 更多 >