【发布时间】:2016-03-07 00:43:26
【问题描述】:
ImportError: DLL 加载失败:%1 不是有效的 Win32 应用程序
有谁知道如何解决这个问题?当我尝试导入 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%;%PYTHONPATH%\Scripts\;%OPENCV_DIR%;** 将我的pythonpath 和我的opencv_dir 引用到PATH 中
我还通过 pip install 和命令行安装了 opencv_python-3.0.0+contrib-cp35-none-win_amd64。
这些都没有解决我的问题。
【问题讨论】:
-
您的“python 路径”是指系统
PATH还是PYTHONPATH?其中一些目录(例如 DLL、Lib、libs)应该不在这些环境变量中。 -
@eryksun 我编辑了我的问题,是的,它在 PATH 中被引用
-
不要在您的
PYTHONPATH中包含C:\Python35;C:\Python35\DLLs;C:\Python35\Lib;C:\Python35\libs。它也不应该有任何包含特定于实现模块的目录,例如C:\Users\CV\OpenCV\opencv\build\python\2.7\x64——因为PYTHONPATH没有版本控制。我也怀疑%OPENCV_DIR%\bin是否包含 Python 模块。可能需要它位于系统PATH上以查找 DLL。 -
如果你安装了Gohlke's build,它包含了除了
cv2.cp35-win_amd64.pyd之外的所有必需的DLL,所以你不应该做任何其他事情。删除您所做的所有其他事情,因为如果 Python 在sys.path上找到错误版本的 cv2,它只会妨碍并导致问题。如果必须,从全新安装 Python 开始,并清理系统PATH以删除对 OpenCV 目录的所有引用。 -
啊,我看到 Gohlke 的 cv2.cp35-win_amd64.pyd 依赖于 C++ 运行时库 MSVCP140.dll。那是你需要的DLL吗? Python 3.5 的安装程序不包含此 DLL,因此在这种情况下,您可能必须安装 VC++ 2015 redistributable package。
标签: python windows opencv dll 64-bit