首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pyinstaller没有在jetson中打包cv2

Pyinstaller没有在jetson中打包cv2
EN

Stack Overflow用户
提问于 2021-02-01 18:03:20
回答 1查看 1K关注 0票数 0

我有一个使用pyinstaller在x86处理器中打包的软件,它打包了包括cv2在内的所有库,但是,当我尝试在Jetson TX2中打包相同的软件时,它不会打包cv2并在执行二进制文件时抛出错误:

代码语言:javascript
运行
复制
OpenCV loader: missing configuration file: ['config.py']

原因是cv2在不同的位置(/usr/lib/python3.6/dist-packages)预装在TX2中。但是,我们自行安装的其他库都在(/home/mnauf/.local/lib/python3.6/site-packages)中,这可能就是pyinstaller无法打包它的原因。

pyinstaller试图在cv2上找到/home/mnauf/.local/lib/python3.6/site-packages,但是没有找到相应的包,但是如果您用python进行cv2导入就可以了。cv2在python中运行良好的原因是,我认为python首先尝试在/home/mnauf/.local/lib/python3.6/site-packages中找到一个库,如果不成功,则在/usr/lib/python3.6/dist-packages中找到。

为了解决打包问题,我尝试了以下方法,下面讨论的错误都是在执行二进制文件时出现的,并且在打包时不会出现:

  1. 将cv2从/usr/lib/python3.6/dist-packages复制到/home/mnauf/.local/lib/python3.6/site-packages。它给出:

ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.

  1. 我试图在打包后将cv2目录从/usr/lib/python3.6/dist-packages复制到由pyinstaller创建的dist/main文件夹,但是我得到了相同的导入错误.

  1. 将cv2目录路径添加为main.spec中的数据文件,也只将文件夹复制到dist/main,从而给出相同的导入错误。

  1. 只将cv2.cpython-36m-aarch64-linux-gnu.so路径作为main.spec中的数据文件添加,会导致Opencv loader错误。

作为二进制文件路径在Import error.中添加cv2目录的

  1. 给出了

  1. 只将cv2.cpython-36m-aarch64-linux-gnu.so路径作为二进制文件添加到main.spec中,这会导致Opencv loader错误。

请帮我打包cv2。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-02 06:06:35

我将/usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so复制到/home/mnauf/.local/lib/python3.6/site-packages/中,然后从python导入cv2,并通过这样做检查了从哪里导入的cv2:

代码语言:javascript
运行
复制
import cv2
cv2.__file__

它还给了我我想要的路,也就是/home/mnauf/.local/lib/python3.6/site-packages/。一旦确信cv2确实在使用我想要的目录,我就运行pyinstaller并打包了cv2依赖项。

以前,在创建可执行文件之前,我已经复制了整个文件夹。这一次,在创建可执行文件之前,我只复制了.so文件,并且它工作了。

我认为“创建可执行文件之前的”也是其中的诀窍。您不能只将.so文件复制到dist/main并期望它正常工作。另外,我们得出的结论是,在.so中以data filebinary file的形式提供main.spec文件路径是行不通的。

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

https://stackoverflow.com/questions/65997841

复制
相关文章

相似问题

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