2015-12-02 84 views
1

ImportError: DLL load failed: %1 is not a valid Win32 application导入CV2:DLL加载失败(Python在Windows 64位)

有谁知道如何解决这个问题?当我试图导入cv2时,会发生此问题。我的笔记本电脑是64位,并安装了64位Python,我也把cv2.pyd文件放在Python的site-packages文件夹中。

PYTHONPATH值= C:\Python35;C:\Python35\DLLs;C:\Python35\Lib;C:\Python35\libs;C:\Users\CV\OpenCV\opencv\build\python\2.7\x64;%OPENCV_DIR%\bin;

OPENCV_DIR值= C:\Users\CV\OpenCV\opencv\build\x64\vc12

我也把我的PYTHONPATH和我opencv_dir的参考PATH通过将**%PYTHONPATH%;%PYTHONPATH%\Scripts\;%OPENCV_DIR%;**

我也装opencv_python-3.0.0 + contrib-cp35-none-win_amd64通过pip安装和命令行。

这些都不能解决我的问题。

+0

是在参考了系统'PATH'或'PYTHONPATH'你的 “蟒蛇路径”?其中一些目录(例如,DLL,Lib,libs)应该不在这些环境变量中。 – eryksun

+0

@eryksun我编辑了我的问题,是的它在PATH – xzbxxzxzmn

+0

引用不要在你的'PYTHONPATH'中包含'C:\ Python35; C:\ Python35 \ DLLs; C:\ Python35 \ Lib; C:\ Python35 \ libs' 。由于'PYTHONPATH'没有版本控制,它也不应该有任何具有特定实现模块的目录,例如'C:\ Users \ CV \ OpenCV \ opencv \ build \ python \ 2.7 \ x64'。我也怀疑'%OPENCV_DIR%\ bin'包含Python模块。它可能需要在系统PATH上查找DLL。 – eryksun

回答

1

(发布作为社区的答案,可以防止系统autodeleting问题@eryksun评论)

Gohlke's cv2.cp35-win_amd64.pyd depends on MSVCP140.dll, the C++ runtime library.

Was that the DLL you need?

The installer for Python 3.5 doesn't include this DLL, so in that case you probably had to install the VC++ 2015 redistributable package .

+0

没有解决我的问题................ –

2

多一点复杂的答案的人来到这里(像我)在未来:

  1. 卸载opencv-python,例如通过pip uninstall opencv-python
  2. 卸载所有 Visual Studio的C++封装
  3. microsoft下载新的Visual Studio和安装
  4. gohlke下载您匹配的蟒蛇WHL并安装使用例如pip install opencv-python-3.2.0+contrib
  5. 现在,它应该工作...
相关问题