ImportError: ошибка загрузки DLL: %1 не является допустимым приложением Win32. Но dll файлы есть


у меня есть ситуация, очень похожая на ситуацию в ImportError: DLL load failed: %1 не является допустимым приложением Win32, но ответ там не работает для меня.

мой код Python говорит:

import cv2

но эта строка выдает ошибку, показанную в заголовке этого вопроса.

у меня установлен OpenCV в C:libopencv на 64-разрядной машине. Я использую 64-битный Python.

моя переменная PYTHONPATH:PYTHONPATH=C:libopencvbuildpython.7. Эта папка содержит cv2.pyd и вот и все.

переменная моего пути:Path=%OPENCV_DIR%bin;... эта папка содержит 39 DLL файлы, такие как opencv_core246d.dll.

OPENCV_DIR имеет следующее значение:OPENCV_DIR=C:libopencvbuildx64vc11.

решение в ImportError: DLL load failed: %1 не является допустимым приложением Win32 говорит добавить " новый путь к двоичным файлам opencv (C:opencvbuildbinRelease) к переменной среды Windows PATH". Но, как показано выше, у меня уже есть папка OpenCV binaries (C:libopencvbuildx64vc11bin) на моем пути. И моя установка OpenCV не имеет никаких Освободите папки (за исключением пустой в разделе build / java).

любые идеи о том, что происходит не так? Могу ли я сказать Python подробно отслеживать процесс загрузки? Именно то, что DLL он ищет?

спасибо, Ларс

EDIT:

Я просто заметил, что по данным http://www.dependencywalker.com/ на cv2.pyd на C:libopencvbuildpython.7 является 32-разрядным, в то время как машина и Python, который я запускаю, являются 64-разрядными. Может ли это быть проблемой? И если да, то где я могу найти 64-разрядную версию cv2.пид?

15 92

15 ответов:

неофициальные двоичные файлы Windows для пакетов расширений Python

вы можете найти любые библиотеки python отсюда

пожалуйста, проверьте, если версия python вы используете также 64 бит. Если нет, то это может быть проблемой. Вы бы использовали 32-битную версию python и установили бы 64-битные двоичные файлы для библиотеки OPENCV.

Вау, я нашел еще один случай на эту проблему. Ничего из вышеперечисленного не сработало. В конце концов я использовал способность python к самоанализу того, что загружалось. Для Python 2.7 это означает:

import imp
imp.find_module("cv2")

это оказалось совершенно неожиданным " cv2.pyd " файл в каталоге DLL Anaconda, который не был затронут несколькими попытками удаления/установки. Python искал там сначала и не нашел мою хорошую установку. Я удалил это cv2.pyd файл и попробовал imp.find_module ("cv2") снова и снова python сразу же нашел нужный файл и cv2 начал работать.

поэтому, если ни одно из других решений не работает для вас, убедитесь, что вы используете Python introspection, чтобы увидеть, какой файл 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

Это был самый простой ответ на неприятный вопрос.

У меня просто была эта проблема, оказывается, это было только потому, что я использовал x64 версию файла opencv. Попробовал x86 и это сработало.

Я скопировал с /opencv/build/python/2.7/x86 папка вместо from до C:/Python27/Lib/site-packeges. Я следовал остальным инструкциям, предоставленным здесь.

если ваша build-система (CMake в моем случае) копирует файл из <name>.dll до <name>.pyd, вы получите эту ошибку, если исходный файл на самом деле не был dll. В моем случае создание общих библиотек было отключено, поэтому базовый файл был фактически *.lib.

я обнаружил эту ошибку при загрузке на DependencyWalker и обнаружив, что это не было действительным.

у меня была та же проблема. Вот что я сделал:

  1. Я загрузил файл колеса pywin32 из здесь, потом

  2. Я удалил pywin32 модуль. Для удаления выполните следующую команду в командной строке.

    pip uninstall pywin32

  3. затем я переустановил pywin32. Чтобы установить его, откройте Командную строку в том же каталоге, где находится файл колеса pywin32 вранье. Затем выполните следующую команду.

    pip install <Name of the wheel file with extension> Колесный файл будет выглядеть так:piwin32-XXX-cpXX-none-win32.колесо

это решает проблему для меня. Вы также можете дать ему попробовать. Надеюсь, что это сработает и для вас.

для меня проблема была в том, что я использовал разные версии Python в то же самое проект Eclipse. Моя настройка не была совместима с Свойства Проекта и Выполнить Конфигурации версии Python.

на Проект > Свойства > PyDev, У меня был интерпретатор установлен на Python2.7.11.

на "Выполнить Конфигурации" > Переводчик, Я использовал интерпретатор по умолчанию. Изменения в Python 2.7.11 Исправлена проблема.

Я столкнулся с той же проблемой, когда я удалил и переустановил другую версию 2.7.x Python в моей системе с использованием 32-разрядного установщика Windows. Я получил ту же ошибку на большинстве моих операторов импорта. Я удалил недавно установленный Python и загрузил 64-битный установщик Windows и переустановил Python снова, и он работал. Надеюсь, это поможет вам.

сначала я скопировал cv2.pyd С /opencv/build/python/2.7/x86 до C:/Python27/Lib/site-packeges. Ошибка была

"RuntimeError: модуль скомпилирован против API версии 9, но эта версия numpy - 7"

затем я установил numpy-1.8.0-win32-superpack-python2.7.exe и opencv работает отлично.

>>> import cv2
>>> print cv2.__version__
2.4.13

Вы можете установить opencv с официальный или неофициально сайты.

смотрите этой сомнение и этой проблема, если вы используете Anaconda.

  1. пожалуйста, убедитесь, что вы установили python 2.7.12 или ниже версии в противном случае вы получите эту ошибку определенно.
  2. убедитесь, что клиент Oracle 64 бит установлен, если ОС 64 бит.
  3. убедитесь, что компилятор Microsoft Visual C++ для Python 2.7 64 для бит для 64-битной ОС или 32 бит для 32 бит. Примечание: - если УР ОС 64 бит установить весь пакет 64 бит или если ОС 32 бит установить 32 бит пакет.

Она имеет очень простое решение. После установки opencv место

cv2.pyd С C:\opencv\build\python.7\ **x64** до C:\Python27\Lib\site-packages

вместо места cv2.pyd С C:\opencv\build\python.7\ **x86** до C:\Python27\Lib\site-packages

Я нашел решение, возможно, вы можете попробовать использовать окно cmd, а не окно подсказки anaconda, чтобы начать первый тест scrapy.