ImportError:DLL加载失败:%1不是有效的Win32应用程序
我有这个问题,我尝试在python上导入cv2并获取以下错误消息。ImportError:DLL加载失败:%1不是有效的Win32应用程序
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: %1 is not a valid Win32 application.
我不知道有这个很多职位在那里建议,包的位数是从Python包不同。
但是,我运行的所有东西都是64位。我在win7 64位,我有winpython 2.7.3.3,64位分布,我编译opencv 64位,提供指令here,并将cv2.pyd DLL放在Python的Lib/site-packages文件夹中。
不幸的是,使用32位版本的python的建议不再适用于我,因为我必须处理numpy数组对32位太大。
谢谢!
------ UPDATE
唯一缺少的是对新的OpenCV的二进制文件的路径(C:\ OpenCV的\建设\ BIN \发布)添加到Windows PATH环境变量,重启蟒蛇。
一切似乎现在工作正常!
的导入错误消息的32位版本是有点误导,因为的参考Win32的,而这个问题只是OpenCV的DLL文件都没有发现。
此问题已通过将路径opencv二进制文件添加到Windows PATH环境变量(例如,在我的计算机上此路径为:C:\ opencv \ build \ bin \ Release)解决。
或者你必须重建win 64bit的cv2模块。
当我有这个错误,它在我的电脑崩溃并重新启动后就消失了。尝试关闭并重新打开IDE,如果不起作用,请尝试重新启动计算机。当我遇到这个错误时,我刚才安装了这些库,而不重新启动pycharm。
从来没有关闭PyCharm首先测试,因为我的爆炸电脑不断随机崩溃......在那个工作,但它至少解决了这个问题..小胜利.. :)。
所有你需要做的是从x86文件夹中复制文件cv2.pyd(C:\ OpenCV的\建设\ python的\ 2.7 \ 86 \为例)C:\ Python27 \ LIB \定点包\,而不是来自x64文件夹。
希望对你有所帮助。
采取什么措施来做到这一点? – Exzile
我没有得到的是,为什么错误消息没有声明无法加载的DLL? %1似乎只是DLL的名称的占位符。 – antred
好的。因此,如果您在64位计算机上修复该错误,则必须从x64文件夹复制cv2.pyd。 @antred它是一个占位符。它通常被替换为DLL,但不起作用,因为32位无法在64位机器上加载。 –