相关疑难解决方法(0)

ImportError:DLL加载失败:%1不是有效的Win32应用程序.但DLL就在那里

我有一个非常像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.pydC:\lib\opencv\build\python\2.7为32位,而机器和我跑了Python是64位.这可能是问题吗?如果是这样,我在哪里可以找到64位版本的cv2.pyd?

python dll opencv path

101
推荐指数
5
解决办法
36万
查看次数

在python中加载DLL时出错,而不是有效的win32应用程序

我试图在python中加载DLL来调用函数.

import ctypes
from ctypes import *

dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
Run Code Online (Sandbox Code Playgroud)

我的堆栈中出现以下错误.

C:\Python27>python test.py
Traceback (most recent call last):
  File "test.py", line 4, in <module>
    dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)

我也尝试使用相同的代码cdll.

我查了一下错误,窗户说它是由于一个包含空格的路径......我认为这不是真正的问题......

我加载这个DLL是错误的还是在dll中可能存在错误的东西?

python dll ctypes

40
推荐指数
1
解决办法
3万
查看次数

ctypes中的find_library()

我试图使用来自ctypes的命令find_library(),但我收到一个错误,我不明白它的原因.我在Windows上工作

这是代码:

import ctypes
from ctypes.util import find_library
import numpy
from string import atoi
from time import sleep

# Class constants
#nidaq = ctypes.windll.nicaiu
nidaq  = ctypes.cdll.LoadLibrary(find_library('NIDAQmx'))
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    nidaq  = ctypes.cdll.LoadLibrary(find_library('NIDAQmx'))
  File "C:\Python27\lib\ctypes\__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
TypeError: expected string or Unicode object, NoneType found
Run Code Online (Sandbox Code Playgroud)

我应该将NIDAQmx放在特定的地方,以便找到它吗?或者这是无关的?

谢谢!

python ctypes

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×3

ctypes ×2

dll ×2

opencv ×1

path ×1