【发布时间】:2019-02-20 07:28:40
【问题描述】:
在 [windows server 2012 R2 x64, python 3.7 64x]
pip install opencv-contrib-python
安装没有任何错误。
当我尝试导入它时
import cv2
告诉我这个错误:
Traceback (most recent call last):
File "test.py", line 1, in <module>
import cv2
File "C:\Program Files\Python37\lib\site-packages\cv2\__init__.py", line 3, in
<module>
from .cv2 import *
ImportError: DLL load failed: The specified module could not be found.
我看到另一个关于此错误的主题,但他们的解决方案对我不起作用:
- DLL load failed error when importing cv2
- Failure to import cv2 in python : DLL load failed
- 以及here 中的很多页面
他们中的一些人说这个问题是因为 anaconda,而我什至没有 anaconda。很多人说问题32或64版本,我都试过了,失望。很多关于系统变量...
什么dll 加载失败?简历2?为什么?
我到现在为止的尝试:
更改python版本:86x和64x中的3.5、3.7、2.7(卸载完整的最后一个版本并删除程序文件中的所有剩余文件......然后安装新的)
尝试使用其他软件包,例如:opencv-python、opencv-contrib,尝试使用 .whl 安装特定版本(在某些主题中我读到了有关此的内容,因此请安装 numpy-1.14.5+mkl-cp37- cp37m-win_amd64.whl 和 opencv_python-3.4.3+contrib-cp37-cp37m-win_amd64.whl 但没有任何变化)
在每次测试的 cv2 之前导入 numpy
安装 Microsoft Visual C++ 2015 Redistributable Update 3 , 2008 , 2010 , 2017 for 64x
更新
接下来的 2 天
我尝试根据下面帖子中提到的 dependency walker 来管理丢失的 dll,下载所有 dll 并将它们放入系统 32,这是一个很好的线索,但不能解决问题。
第 4,5 天
我的下一步,尝试在我的机器上编译 OpenCV,安装 Visual Studio 2012 + cmake 并基于 document 编译 2 版本,64x 和 32,编译本身有很多问题(比如缺少一些来自 c lang 的 lib 和需要安装 Visual C++ Redistributable for Visual Studio 2012 ...) 我解决了所有这些问题,然后我有 2 个成功编译的版本,但两者都有相同的问题,缺少 dll,编译过程太慢了,给我 2 天的时间。所以如果这个任务失败了:/我正在寻找一种新的方式......
第 6 天
我的下一步是尝试使用 docker 在我的机器上运行 OpenCV(我尝试过,但 docker windows 只安装在 windows 10 和 windows server 2016 上)所以我寻找替代方案。我发现 Vagrant 可以像 docker 一样工作,但是今天我的时间花在了这篇文章上,这太棒了,docker 和 vagrant 的概念非常有吸引力,我玩这个就像我有新的谜题 :) 第一个错误显示在...上,无限错误继续:
第 7 天
Vagrant 测试也失败了,因为我的 windows server 2012 是一台 vb 机器(可视化服务器)并且不可能在另一个可视化框中运行可视化框! 所以我需要新的线索:
第 8-9 天
尝试使用 VMware 安装 vagrant,我下载了 VMware,不幸的是这个插件不是免费的(79 美元)所以我尝试使用 pythonanywhere.com,'让您可以访问已经安装了完整 Python 环境的机器。 ' 在这个免费帐户中,你不能用 urllib 打开url,还有更多限制...... 所以我想尝试自己在 VMware 中安装 ubuntu ......我下班后在这里阅读了结果。这是不可能的,原因相同vb(视觉框)
【问题讨论】:
-
您可以尝试将 .dll 文件添加到与 .pyd 文件相同的文件夹中吗?也许远程服务器没有检入 system32.dll?
标签: python opencv image-processing cv2