TX2上自带opencv4.1.1,运行detect.py报错
python3 detect.py --source data/images/ --weights yolov5s.pt
Traceback (most recent call last):
File "detect.py", line 5, in <module>
import cv2
ModuleNotFoundError: No module named 'cv2'
方法1:aujqsuwgbd
将 opencv-4.1.0/build/lib/python3/ 目录下的 cv2.cpython-36m-aarch64-linux-gnu.so 复制到 /usr/local/lib/python3.6/dist-packages
sudo cp cv2.cpython-36m-aarch64-linux-gnu.so /usr/local/lib/python3.6/dist-packages
结果发现目标目录已存在该文件。
方法2:fangfa2
python的module搜索路径,其实是编译python的时候就有相关的默认配置的。例如:
python -m sysconfig
查看相应搜索路径
但是我们执行如下命令看真实的搜索路径
python
import sys;print(sys.path)
就会发现与上面路径不同
以为是由于之前为了安装pytorch安装了archiconda,archiconda中安装了python3.7.1,之后系统调用python就直接是3.7.1,所以路径不对
然后更改默认调用python版本为TX2自带版本python3.6.9
结果依旧不行。。。。。
方法3:由于缺少opencv_contrib,教程见下面链接
借鉴很多教程发现TX2自带的opencv缺少好多包,到cmake那一步卡住了。。。
CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib‘
解决:将opencv_contrib中的modules中的cudev文件夹复制到opencv/modules里
再cmake便正常了,之后make也没再出错,重新source之后
验证是否安装成功:打开python输入import cv2,依旧显示没有cv2,无语
最后决定,重装opencv
在archiconda中创建个环境直接conda install opencv就能自动安装了,很顺利