python - Cv2 आयात करते समय DLL लोड विफल हुआ




opencv (13)

मैंने अपनी खिड़कियों की मशीन पर opencv को अजगर 3.6 का उपयोग करके बिना किसी समस्या के स्थापित किया है:

pip install opencv-python

लेकिन जब मैं cv2 आयात करने की कोशिश करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है

ImportError: DLL load failed: The specified module could not be found.

मैंने इस पोस्ट को देखा है

यह कहता है कि cv2 अजगर 3 के साथ काम नहीं करता है मैं सोच रहा था कि क्या यह तय किया गया है या अगर इसके आसपास कोई रास्ता है


(आधार) C: \ WINDOWS \ system32> conda install C: \ Users \ Todd \ Downloads \ opencv3-3.1.0-py35_0.tar.bz2

Https://anaconda.org/menpo/opencv3/files से संस्करण डाउनलोड करने के बाद मैंने इस कमांड को एनाकोंडा टर्मिनल से चलाया

यह एकमात्र तरीका है जिससे मुझे काम करने के लिए cv2 मिल सकता है और मैंने दो दिनों तक सब कुछ करने की कोशिश की।


Anaconda3 (Python 3.6) पर opencv 2.4.13 स्थापित करते समय मेरे पास एक ही मुद्दा था ... मैं Anaconda2 (पायथन 2.7) पर वापस लौटकर इस मुद्दे को ठीक करने में कामयाब रहा


अगर यह किसी को मदद करता है, तो आधिकारिक अजगर 3.6 विंडोज़ डॉकटर छवि पर, इस चीज़ को काम करने के लिए मुझे अपने पुस्तकालयों से निम्नलिखित पुस्तकालयों की प्रतिलिपि बनानी होगी:

C: \ windows \ system32

aepic.dll
avicap32.dll
avifil32.dll
avrt.dll
Chakra.dll
CompPkgSup.dll
CoreUIComponents.dll
cryptngc.dll
dcomp.dll
devmgr.dll
dmenterprisediagnostics.dll
dsreg.dll
edgeIso.dll
edpauditapi.dll
edputil.dll
efsadu.dll
efswrt.dll
ELSCore.dll
evr.dll
ieframe.dll
ksuser.dll
mf.dll
mfasfsrcsnk.dll
mfcore.dll
mfnetcore.dll
mfnetsrc.dll
mfplat.dll
mfreadwrite.dll
mftranscode.dll
msacm32.dll
msacm32.drv
msvfw32.dll
ngcrecovery.dll
oledlg.dll
policymanager.dll
RTWorkQ.dll
shdocvw.dll
webauthn.dll
WpAXHolder.dll
wuceffects.dll

C: \ windows \ SysWOW64

aepic.dll
avicap32.dll
avifil32.dll
avrt.dll
Chakra.dll
CompPkgSup.dll
CoreUIComponents.dll
cryptngc.dll
dcomp.dll
devmgr.dll
dsreg.dll
edgeIso.dll
edpauditapi.dll
edputil.dll
efsadu.dll
efswrt.dll
ELSCore.dll
evr.dll
ieframe.dll
ksuser.dll
mfasfsrcsnk.dll
mfcore.dll
mfnetcore.dll
mfnetsrc.dll
mfplat.dll
mfreadwrite.dll
mftranscode.dll
msacm32.dll
msvfw32.dll
oledlg.dll
policymanager.dll
RTWorkQ.dll
shdocvw.dll
webauthn.dll
wuceffects.dll`

अजगर का उपयोग कर स्थापित करें:

  • पाइप स्थापित opencv-python (यह नवीनतम संस्करण ले जाएगा)

सुनिश्चित करें कि opencv-python पथ में स्थापित है (\ Python \ Python36 \ Lib \ साइट-संकुल), आपको वहाँ पर cv2 फ़ोल्डर मिलेगा।

Cv2 के संस्करण की जाँच करने के लिए: cv2 प्रिंट आयात करें (cv2 .__ version__)


इस मुद्दे पर बहुत अधिक समय बिताने और सभी अलग-अलग उत्तरों की कोशिश करने के बाद, यहाँ पाया गया है:

  • @Thewaywewere द्वारा स्वीकृत उत्तर अब लागू नहीं है। मुझे लगता है कि यह तब लागू होता था जब opencv-python मॉड्यूल अभी भी उपलब्ध नहीं था।

  • यह वास्तव में एनाकोंडा 4.2 में एक बग है क्योंकि वे python3.dll जहाज करना भूल गए थे। उन्होंने इसे अगले रिलीज में तय किया है, लेकिन दुर्भाग्य से 4.2 डिफ़ॉल्ट के रूप में पायथन 3.5 के साथ अंतिम रिलीज है। यदि आप पायथन 3.5 के साथ अटके हुए हैं (उदाहरण के लिए VS2015 केवल 3.5 तक के संस्करणों से अवगत है) तो आपको @ Ramesh-X द्वारा उत्तर में वर्णित रूप से python3.dll को मैन्युअल रूप से डाउनलोड करना होगा।

  • यदि आप Python 3.6 (जो वर्तमान में आप OpenCV और VS2015 का उपयोग कर रहे हैं, तो थोड़ा मुश्किल है) पर आगे बढ़ सकते हैं, तो बस नवीनतम एनाकोंडा संस्करण स्थापित करें और आपको इनमें से किसी से भी निपटने की आवश्यकता नहीं है।


उस पर कई सवाल हैं और कई सुझाव हैं। उनमें से किसी ने भी मुझे हाल ही में ओपनकेव 3.4.16 और पायथन 3.6 / 3.7 के लिए मदद नहीं की। अंत में मैंने Pyhon 2.7.15 पर स्विच किया और Opencv 3.1.0 स्थापित किया। DLL- समस्या हल हो गई थी।

जब मैं निर्भरता वॉकर के साथ cv2.pyd में देखता हूं, तो 3.1 में एक लापता dll के लिए कोई निर्भरता नहीं है। Opencv 3.4 में इस dll के लिए लापता निर्भरता है:

API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL

यह समस्या हो सकती है।

पुनश्च: मेरे पास विन 7 पॉज़िस्टिक 64 बिट, 32 बिट पायथन 2.7.15 है


कृपया याद रखें कि क्या आप खिड़कियों के लिए अजगर पैकेज / लाइब्रेरी स्थापित करना चाहते हैं,

आप हमेशा अजगर अनौपचारिक Binaries पर विचार करना चाहिए

चरण 1:

अपने पैकेज के लिए खोज करें, निर्भर संस्करण 2.7 या 3.6 डाउनलोड करें आप इसे डाउनलोड के तहत पा सकते हैं / your_package_version.whl इसके बुलाया python wheel

चरण 2:

अब पाइप का उपयोग कर स्थापित करें,

pip install ~/Downloads/your_packae_ver.whl

यह बिना किसी त्रुटि के स्थापित होगा।


मुझे इस त्रुटि को हल करने में बहुत समय लगा! चलाने के आदेश

pip install opencv-contrib-python

मेरी भी यही समस्या है। जब मैं WinPython प्रोग्रामिंग इंस्टॉल करता हूं, और अपनी opencv निर्देशिका से cv2.pyd फाइल कॉपी करने के बाद opencv चलाता हूं, तो यह इस तरह होगी: C: \ Users ..... \ download \ opencv \ build \ python का 2.7 \ x64, x64 या x86 आपके 32 या 64 बिट उपकरणों पर निर्भर है। और C: \ Users ..... \ Downloads \ WinPython-64bit-3.5.4.1Qt5 \ python-3.5.4.amd64 \ Lib \ site- पैकेजों पर पेस्ट करें, मैं पिछले पायथन 3.5 को 3.6 से अधिक पसंद करता हूं। क्योंकि जब मैं "आयात cv2" स्थापित (अजगर 3.6) यह सीधे दिखाता है: "ImportError: DLL लोड विफल रहा: निर्दिष्ट मॉड्यूल नहीं मिल सका" तब मैं python 3.5 स्थापित करता हूं और WinPyhton कमांड प्रॉम्प्ट को खोलता हूं और "pip install opencv-python" टाइप करता हूं। ।

कमांड प्रॉम्प्ट स्वचालित रूप से opencv डाउनलोड करता है, यह इस तरह की प्रक्रिया को दिखाता है "सफलतापूर्वक स्थापित opencv-python-3.3.0.10"

अंत में, मैं "cv2 आयात" टाइप करके ओपन cv चलाने की कोशिश करता हूं, यह काम करता है कि मैं "cv2। संस्करण " टाइप करने की कोशिश करता हूं, और दिखाता है: '3.3.0'


मैं अजगर 3.6 (एनाकोंडा 3) और OpenCV 3.4.1 के साथ स्पाईडर के लिए काम करने के लिए एक ही मुद्दा था। Anaconda3 उपयोगकर्ताओं / home / Anaconda3 / Lib / साइट-संकुल में cv2.pyd की प्रतिलिपि बनाने के बाद भी यह काम नहीं किया।

लेकिन एक समाधान मिला

बाद में मैंने एनाकोंडा पर ओपनसीवी और डेलिब को स्थापित किया और उत्पन्न cv2.cp36-win_amd64.pyd और dlib.cp36-win_amd64.pyd को एनाकोंडा 3 उपयोगकर्ताओं के घर / एनाकोंडा 3 / लिब / साइट-पैकेज में कॉपी किया। इन्हें पर्यावरण फ़ोल्डर C: \ Users \ home \ Anaconda3 \ envs \ opencv \ Lib \ site-package से कॉपी किया जा सकता है।

अंत में स्पाइडर ने काम करना शुरू कर दिया


यदि आप python 3.5 साथ एनाकोंडा का उपयोग कर रहे हैं, तो यह एनाकोंडा रिलीज में एक समस्या है। (इस issue देखें)

आप इस समस्या को Anaconda3 फ़ोल्डर (जहाँ python.exe स्थित है) में python3.dll फ़ाइल की प्रतिलिपि बनाकर ठीक कर सकते हैं

"Python3.dll" कैसे प्राप्त करें

  • cmd , यह जानने के लिए कि आपका अधिष्ठापन 64-बिट है या 32-बिट है, python --version टाइप cmd
  • यहां से अजगर 3.x एम्बेड करने योग्य ज़िप फ़ाइल डाउनलोड here
  • ज़िप फ़ाइल निकालें और Anaconda3 फ़ोल्डर में python3.dll फ़ाइल की प्रतिलिपि बनाएँ

लेकिन अगर आप python 3.6 साथ Anaconda जा सकते हैं तो आप इस मुद्दे का सामना नहीं करेंगे। यदि यह आपके लिए संभव है, तो यह अनुशंसित तरीका है।


सच कहूँ तो यहाँ बहुत स्मार्ट और जटिल उत्तर हैं। मेरा गूंगा और सरल है। मैंने अपने कोंडा पर्यावरण को नष्ट कर दिया, खरोंच से फिर से स्थापित किया, पहले दर्द को खोलने के लिए दर्द उठा रहा था। इससे मेरी समस्याएं ठीक हो गईं। वातावरण अस्थायी और अनाथ होने के लिए होता है इसलिए बहुत अधिक संलग्न न हों।

इसलिए यदि मेरे पर्यावरण को fubar कहा जाता है तो पहले सुनिश्चित करें कि हर उदाहरण निष्क्रिय है (किसी भी आईडीई जो इसका उपयोग कर रहे हैं सहित)। फिर इसे हटा दें:

conda remove --name fubar --all

अब मैं बस अपने वातावरण को फिर से बनाता हूँ और पहले opencv जोड़ता हूँ:

conda create --name fubar
conda activate fubar
conda install opencv

और फिर वहां से चले जाएं। मैं हमेशा ( हमेशा ) स्पाइडर को अंतिम रूप से स्थापित करता हूं क्योंकि जब मैं नहीं करता तो चीजों को खराब कर देता है।


हाल ही में मैंने Azure Windows Server 2012 r2 में इसी तरह के मुद्दे का सामना किया है। एनाकोंडा के साथ और बिना सभी विकल्प की कोशिश की, लेकिन उनमें से किसी ने भी मदद नहीं की। बहुत सारे निष्कर्षों के बाद मैंने पाया कि mfplat.dll गायब था जो विंडो मीडिया सेवा से संबंधित है।

इसलिए आपको मैन्युअल रूप से सुविधाओं को स्थापित करना होगा ताकि आप विंडो मीडिया सेवा से संबंधित डीएल प्राप्त कर सकें।

1. बंद खिड़कियों पर या बंद सुविधाएँ

भूमिकाओं स्क्रीन 2.Skip और सीधे फ़ीचर स्क्रीन पर जाएँ

3. "यूजर इंटरफेस और इन्फ्रास्ट्रक्चर" के तहत "डेस्कटॉप अनुभव" का चयन करें

इसके बाद opencv के लिए मीडिया सेवाओं के सभी आवश्यक dll उपलब्ध होंगे।

इसलिए यदि आप अपने कोड को क्लाउड (विंडो सर्वर) में चलाने की योजना बना रहे हैं, तो कृपया डेस्कटॉप अनुभव सुविधा का चयन करना न भूलें।





cv2