2013-09-26 12 views
87

मेरे पास ImportError: DLL load failed: %1 is not a valid Win32 application पर एक जैसी स्थिति है, लेकिन उत्तर मेरे लिए काम नहीं कर रहा है।आयात त्रुटि: डीएलएल लोड विफल:% 1 वैध Win32 अनुप्रयोग नहीं है। लेकिन डीएलएल

मेरे अजगर कोड का कहना है:

import cv2 

लेकिन उस लाइन को इस सवाल का शीर्षक में दिखाया गया त्रुटि फेंकता है।

मेरे पास इस 64-बिट मशीन पर C:\lib\opencv में ओपनसीवी स्थापित है। मैं 64-बिट पायथन का उपयोग कर रहा हूँ।

मेरा पायथन पैथ चर: PYTHONPATH=C:\lib\opencv\build\python\2.7। इस फ़ोल्डर में cv2.pyd है और यह सब कुछ है।

मेरा पाथ चर: Path=%OPENCV_DIR%\bin;... इस फ़ोल्डर में 3 डीएलएल फाइलें हैं जैसे opencv_core246d.dll

OPENCV_DIR में यह मान है: OPENCV_DIR=C:\lib\opencv\build\x64\vc11

ImportError: DLL load failed: %1 is not a valid Win32 application पर समाधान विंडोज पाथ पर्यावरण चर में "नया ओपनसीवी बाइनरी पथ (C:\opencv\build\bin\Release) जोड़ने का कहना है"। लेकिन ऊपर दिखाए गए अनुसार, मेरे पास पहले से ही मेरे पाथ में ओपनसीवी बाइनरी फ़ोल्डर (C:\lib\opencv\build\x64\vc11\bin) है। और मेरी ओपनसीवी स्थापना में कोई रिलीज फ़ोल्डर्स नहीं है (बिल्ड/जावा के तहत खाली एक को छोड़कर)।

क्या गलत हो रहा है के बारे में कोई विचार? क्या मैं पाइथन को लोडिंग प्रक्रिया का पता लगाने के लिए कह सकता हूं? वास्तव में क्या डीएलएल की तलाश है?

धन्यवाद, लार्स

संपादित करें:

मैं सिर्फ देखा है कि, http://www.dependencywalker.com/ के अनुसार, C:\lib\opencv\build\python\2.7 में cv2.pyd, 32-बिट है, जबकि मशीन और अजगर मैं चल रहा हूँ 64-बिट कर रहे हैं । क्या यह समस्या हो सकती है? और यदि हां, तो मुझे cv2.pyd का 64-बिट संस्करण कहां मिल सकता है?

+6

क्लिक [यहां] (http: // www .lfd.uci.edu/~ gohlke/pythonlibs/# opencv) और 64-बिट opencv –

+1

@ किलकंसोल ढूंढें: धन्यवाद, मैं इसे आज़माउंगा। चूंकि इंस्टॉल किए गए इंस्टॉल पैकेज में x86 और x64 सबफ़ोल्डर्स दोनों थे, मैंने माना कि इसमें 64-बिट के लिए सबकुछ शामिल था। जाहिरा तौर पर नहीं। हुरे, यह तय है! अब हम "ImportError: numpy.core.multiarray आयात करने में विफल" पर हैं, इसलिए मैं 64-बिट numpy के लिए एक ही साइट का प्रयास करूंगा। यदि आप एक टिप्पणी में अपनी टिप्पणी करते हैं, तो मैं इसे ऊपर उठाऊंगा और स्वीकार करूंगा। – LarsH

+0

जो आपने पाइथन संस्करण का उपयोग किया था? (प्रोसेसर बिट संस्करण के संदर्भ में नहीं) –

उत्तर

73

Unofficial Windows Binaries for Python Extension Packages

आप कृपया जांच करें अजगर संस्करण प्रयोग कर रहे 64 बिट है अगर यहाँ

+0

यह वास्तव में मदद की। मुझे यकीन नहीं है कि क्या गलत था। मेरे पास ओपनसीवी, एनाकोंडा 3, पायथन 3 का संस्करण था। उपरोक्त पैकेज सूची से opencv_python-3.3.0 + contrib-cp35-cp35m-win_amd64 स्थापित किया गया और संघर्ष के घंटों के बाद सफलतापूर्वक सीवी 2 आयात करने में सक्षम था। अनेक अनेक धन्यवाद। – emeralddove

27

से किसी भी अजगर libs पा सकते हैं। यदि नहीं तो यह मुद्दा हो सकता है। आप 32 बिट पायथन संस्करण का उपयोग करेंगे और OPENCV लाइब्रेरी के लिए 64 बिट बाइनरी स्थापित करेंगे।

+0

जैसा कि सवाल में बताया गया है, मैं 64-बिट पायथन का उपयोग कर रहा था। – LarsH

6

मेरे मामले में, मेरे पास 64 बिट पायथन है, और यह एलएक्सएमएल था जो गलत संस्करण था - मुझे इसके x64 संस्करण का भी उपयोग करना चाहिए था। मैं यहाँ lxml का 64-बिट संस्करण डाउनलोड करके हल:

https://pypi.python.org/pypi/lxml/3.4.1

lxml-3.4.1.win-amd64-py2.7.exe 

यह एक निराशा होती मुद्दा करने का सबसे सरल जवाब था।

6

मुझे बस यह समस्या थी, यह बदल गया क्योंकि यह ओपनसीवी फ़ाइल के x64 संस्करण का उपयोग कर रहा था। X86 कोशिश की और यह काम किया।

2

मैंने cv2.pyd फ़ाइल /opencv/build/python/2.7/x86 फ़ोल्डर से /x64 फ़ोल्डर से C:/Python27/Lib/site-packeges पर प्रतिलिपि बनाई है।मैंने here प्रदान किए गए निर्देशों का पालन किया।

1

मेरे लिए समस्या यह थी कि मैं में पाइथन के विभिन्न संस्करणों का उपयोग कर रहा था ग्रहण परियोजना। मेरा सेटअप परियोजना गुण और चलाएं कॉन्फ़िगरेशन पायथन संस्करणों के साथ संगत नहीं था।

प्रोजेक्ट> गुण> PyDev, मेरे पास इंटरप्रेटर Python2.7.11 पर सेट था।

रन कॉन्फ़िगरेशन> इंटरप्रेटर, मैं डिफ़ॉल्ट इंटरप्रेटर का उपयोग कर रहा था। इसे पायथन 2.7.11 में बदलना समस्या को हल करता है।

9

वाह, मुझे इस समस्या के लिए एक और मामला मिला। उपरोक्त में से कोई भी काम नहीं किया। आखिरकार मैंने पाइथन की क्षमता का पता लगाया कि क्या लोड किया जा रहा था। अजगर 2.7 के लिए इसका मतलब है:

import imp 
imp.find_module("cv2") 

यह एक एनाकोंडा DLL निर्देशिका कि कई स्थापना रद्द करें द्वारा छुआ नहीं किया गया था में एक पूरी तरह से अप्रत्याशित "cv2.pyd" फाइल कर दिया/प्रयास स्थापित करें। पाइथन पहले वहां देख रहा था और मेरी अच्छी स्थापना नहीं ढूंढ रहा था। मैंने उस cv2.pyd फ़ाइल को हटा दिया और फिर imp.find_module ("cv2") को फिर से कोशिश की और पायथन तुरंत सही फ़ाइल पाई और सीवी 2 काम करना शुरू कर दिया।

इसलिए यदि कोई अन्य समाधान आपके लिए काम नहीं करता है, तो सुनिश्चित करें कि आप पाइथन आत्मनिरीक्षण का उपयोग यह देखने के लिए करते हैं कि फ़ाइल पाइथन लोड करने का प्रयास कर रहा है।

+1

मुझे कोई समस्या थी कि यह पूरी तरह से एक अलग फ़ोल्डर में फ़ाइल का संस्करण चलाने की कोशिश कर रहा था। इस समाधान ने मुझे यह पता लगाने में मदद की कि वास्तव में क्या चल रहा था।धन्यवाद! –

+0

यह एक उत्कृष्ट जवाब है, धन्यवाद! मैं PyDev के साथ एक समस्या में भाग गया जहां यह पाइथन की एक असंगत स्थापना से "ctypes" लोड कर रहा था, और मुझे एहसास हुआ कि मुझे WinPython का उपयोग करने के लिए अपना दुभाषिया स्थापित करने की आवश्यकता है, जिसने इसे ठीक किया है। – eacousineau

-2

मुझे समाधान मिला, शायद आप पहले स्केपर परीक्षण शुरू करने के लिए एनाकोंडा प्रॉम्प्ट विंडो की बजाय cmd विंडो का उपयोग करने का प्रयास कर सकते हैं।

0

सबसे पहले मैं C:/Python27/Lib/site-packeges करने के लिए /opencv/build/python/2.7/x86 से cv2.pyd की नकल की। त्रुटि

"RuntimeError: module compiled against API version 9 but this version of numpy is 7"

तब मैं numpy-1.8.0-win32-superpack-python2.7.exe इंस्टॉल था opencv ठीक काम करता है।

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

यदि आपका निर्माण प्रणाली (मेरे मामले में CMake) प्रतियां <name>.dll से <name>.pyd करने के लिए फ़ाइल, तो आप इस त्रुटि प्राप्त होगी यदि मूल फ़ाइल वास्तव में एक dll नहीं था। मेरे मामले में, साझा पुस्तकालयों का निर्माण बंद हो गया, इसलिए अंतर्निहित फ़ाइल वास्तव में *.lib थी।

मैंने pyd फ़ाइल DependencyWalker में फ़ाइल लोड करके और यह मान्य नहीं पाया कि यह त्रुटि मान्य है।

1

मुझे एक ही समस्या थी। यहाँ मैं क्या किया है:

  1. मैं here से pywin32 व्हील फ़ाइल डाउनलोड की है, तो

  2. मैं pywin32 मॉड्यूल की स्थापना रद्द। कमांड प्रॉम्प्ट में निम्न आदेश निष्पादित करने के लिए अनइंस्टॉल करने के लिए।

    pip uninstall pywin32

  3. फिर, मैं pywin32 पुनर्स्थापित।इसे स्थापित करने के लिए, उसी निर्देशिका में कमांड प्रॉम्प्ट खोलें जहां pywin32 व्हील फ़ाइल निहित है। फिर निम्न आदेश निष्पादित करें।

    pip install <Name of the wheel file with extension> व्हील फ़ाइल किया जाएगा: piwin32-XXX-cpXX-नन-win32.whl

यह मेरे लिए समस्या solvs। आप इसे आज़मा सकते हैं। उम्मीद है कि यह आपके लिए भी काम करेगा।

1

मुझे एक ही समस्या का सामना करना पड़ा जब मैंने 32 बिट विंडोज इंस्टालर का उपयोग करके अपने सिस्टम पर पायथन के 2.7.x के एक अलग संस्करण को अनइंस्टॉल किया और पुनर्स्थापित किया। मुझे अपने अधिकांश आयात विवरणों में एक ही त्रुटि मिली है। मैंने नए स्थापित पायथन को अनइंस्टॉल किया और 64 बिट विंडोज इंस्टालर डाउनलोड किया और फिर से पाइथन को पुनर्स्थापित किया और यह काम किया। उम्मीद है कि यह आपकी मदद करता है।

0

आप official या unofficial साइटों सेइंस्टॉल कर सकते हैं।

this प्रश्न और this समस्या का संदर्भ लें यदि आप Anaconda का उपयोग कर रहे हैं।

0
  1. कृपया सुनिश्चित करें कि आपने पाइथन 2.7.12 या नीचे संस्करण स्थापित किया है अन्यथा आपको यह त्रुटि निश्चित रूप से मिल जाएगी।
  2. सुनिश्चित करें कि ओएस 64 बिट स्थापित है तो ओरेकल क्लाइंट 64 बिट स्थापित है।
  3. सुनिश्चित करें कि पाइथन 2.7 के लिए माइक्रोसॉफ्ट विजुअल सी ++ कंपाइलर 64 बिट ओएस या 32 बिट के लिए 32 बिट के लिए बिट के लिए 64 है। नोट: - यदि आपका ओएस 64 बिट 64 बिट के सभी पैकेज को स्थापित करता है या यदि ओएस 32 बिट पैकेज 32 बिट इंस्टॉल करता है।
0

यह opencv ... स्थापित करने के बाद एक बहुत ही सरल समाधान आप सी से cv2.pyd जगह है: \ opencv \ \ अजगर का निर्माण \ 2.7 \ सी में: \ Python27 \ लिब \ साइट- संकुल

बजाय, सी से जगह cv2.pyd: \ opencv \ \ अजगर का निर्माण \ 2.7 \ सी में: \ Python27 \ लिब \ साइट-संकुल

संबंधित मुद्दे