我正在尝试将我的Web应用程序部署在pythonanywhere上,我需要带有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上扎根,因此我使用DESTDIR
安装了OpenCv:
make install DESTDIR=/home/pathToInstallationDir...
安装没有问题,但是python控制台尚未import cv2
。感谢此答案的第7点:Why cv2.so missing after opencv installed?我导出了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解释器遵循该变量来找到lib中的所有.so
,此刻是错误的,因为我寻找了{{1 }},并应位于lib中。
我正确吗?如果是,则哪个变量是隐式变量,该如何更改?
如果不是,那该问题的正确诊断是什么?
请帮助。