我正在尝试在 pythonanywhere 上部署我的 Web 应用程序,并且我需要带有 cotrib 模块的 OpenCv。因此,我使用以下 cmake 配置对其进行了编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=OFF \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON \
-D BUILD_opencv_python3=yes ..
因为我不能在 pythonanywhere bash 上成为 root,所以我使用以下命令安装了 OpenCv DESTDIR
:
make install DESTDIR=/home/pathToInstallationDir...
安装没有问题,但是python控制台还不能import cv2
。感谢这个回答的第 7 点:为什么 cv2.so 在 opencv 安装后丢失?我导出了 python 路径,它现在尝试import cv2
使用以下错误日志:
File "<stdin>", line 1, in <module>
File "/home/pathToInstallationDir.../usr/local/lib/python3.6/site-packages/cv2/__init__.py", line 96, in <module>
bootstrap()
File "/home/spir/pathToInstallationDir.../usr/local/lib/python3.6/site-packages/cv2/__init__.py", line 86, in bootstrap
import cv2
ImportError: libopencv_hdf.so.4.4: cannot open shared object file: No such file or directory
所以我猜在__init__.py
模块中指定了一个环境变量,python 解释器遵循它来查找.so
lib 中的所有内容,目前它是错误的,因为我寻找libopencv_hdf.so.4.4
并位于 lib 中,因为它应该是。
我对么?如果是,哪个变量是有罪的变量,我该如何更改它?
如果不是,那么该问题的正确诊断是什么?
请帮忙。