Lar*_*rsH 101 python dll opencv path
我有一个非常像ImportError的情况:DLL加载失败:%1不是一个有效的Win32应用程序,但答案不适合我.
我的Python代码说:
import cv2
Run Code Online (Sandbox Code Playgroud)
但该行抛出了此问题标题中显示的错误.
我C:\lib\opencv在这台64位机器上安装了OpenCV .我正在使用64位Python.
我的PYTHONPATH变量:PYTHONPATH=C:\lib\opencv\build\python\2.7.这个文件夹包含cv2.pyd,就是全部.
我的PATH变量:Path=%OPENCV_DIR%\bin;...此文件夹包含39个DLL文件,例如opencv_core246d.dll.
OPENCV_DIR具有此值:OPENCV_DIR=C:\lib\opencv\build\x64\vc11.
ImportError的解决方案:DLL加载失败:%1不是有效的Win32应用程序,说"将新的opencv二进制文件路径(C:\opencv\build\bin\Release)添加到Windows PATH环境变量".但是如上所示,C:\lib\opencv\build\x64\vc11\bin我的PATH中已经有OpenCV二进制文件夹().我的OpenCV安装没有任何Release文件夹(build/java下的空文件夹除外).
关于出了什么问题的任何想法?我可以告诉Python详细跟踪加载过程吗?究竟是什么DLL正在寻找?
谢谢,拉尔斯
我只注意到,根据http://www.dependencywalker.com/中,cv2.pyd在C:\lib\opencv\build\python\2.7为32位,而机器和我跑了Python是64位.这可能是问题吗?如果是这样,我在哪里可以找到64位版本的cv2.pyd?
Eze*_*ick 14
哇,我发现了另一个这个问题的案例.以上都没有奏效.最终我使用python的能力来反省被加载的内容.对于python 2.7,这意味着:
import imp
imp.find_module("cv2")
Run Code Online (Sandbox Code Playgroud)
这在Anaconda DLL目录中发现了一个完全出乎意料的"cv2.pyd"文件,该文件未被多次卸载/安装尝试触及.Python首先在那里看,没有找到我的好装置.我删除了那个cv2.pyd文件并再次尝试了imp.find_module("cv2"),python立即找到了正确的文件并且cv2开始工作.
因此,如果其他解决方案都不适合您,请确保使用python内省来查看python尝试加载的文件.
在我的情况下,我有64位python,而lxml是错误的版本 - 我本来应该使用它的x64版本.我在这里通过下载64位版本的lxml来解决这个问题:
https://pypi.python.org/pypi/lxml/3.4.1
lxml-3.4.1.win-amd64-py2.7.exe
Run Code Online (Sandbox Code Playgroud)
这是令人沮丧的问题的最简单答案.
| 归档时间: |
|
| 查看次数: |
363721 次 |
| 最近记录: |