2012-08-26 7 views
19

मैं स्रोत से एक पैकेज का निर्माण करने की कोशिश कर रहा हूँ से कोड की धारा है setup.py, मैं प्रासंगिक होगा लगता है:त्रुटि: "MSVCP90.dll: ऐसी कोई फ़ाइल या निर्देशिका" भले ही माइक्रोसॉफ्ट विजुअल C++ 2008 Redistributable पैकेज <code>python setup.py py2exe</code></p> <p>यह क्रियान्वित करते हुए स्थापित किया गया है

if sys.platform == "win32": # For py2exe. 
    import matplotlib 
    sys.path.append("C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT") 
    base_path = "" 
    data_files = [("Microsoft.VC90.CRT", glob.glob(r"C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*")), 

त्रुटि दिखाई देता है:

*** finding dlls needed *** 
error: MSVCP90.dll: No such file or directory 

लेकिन मैं स्थापित किया है "माइक्रोसॉफ्ट दृश्य C++ 2008 Redis सहायक पैकेज "। मैं 64-बिट विंडोज 8 पर 32-बिट पायथन चला रहा हूं। मैं 32-बिट बाइनरी बनाने की कोशिश कर रहा हूं। "C: \ Program Files \ Microsoft Visual Studio 9.0 \ कुलपति \ Redist \"

इसके अलावा वहाँ कोई फ़ोल्डर इस तरह है। यह वही है मेरे कंप्यूटर में शामिल है:

enter image description here

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

msvcp90.dll मेरी सी पर के लिए खोज पर: \ ड्राइव मैंने पाया कि वे इस तरह अजीब रास्तों में स्थापित कर रहे हैं:

enter image description here

+0

ये लिंक सहायता कर सकते हैं: http://stackoverflow.com/questions/1158705/msvcp90-dll-not-found https://www.microsoft.com/en-us/download/details.aspx?id=29 – squiguy

+1

क्या यह कोड सफल होता है: 'आयात ctypes; lib = ctypes.WinDLL ('msvcp90.dll') ' –

+0

@ डेविड हेफरन: हाँ, यह कोड पायथन खोल (आईडीएलई) में सफल होता है। अपना कोड निष्पादित करने के बाद, यदि मैं चलाता हूं, ">>> lib" यह कहता है कि claws

उत्तर

12

मैं एकमुश्त निर्भरता अनदेखी की सिफारिश करेंगे। MSVCP90.dlldll_excludes की सूची py2exe के लिए एक विकल्प के रूप में दिया में जोड़े। उपयोगकर्ताओं को माइक्रोसॉफ्ट विजुअल सी ++ 2008 पुनर्वितरण योग्य स्थापित करना होगा। एक उदाहरण:

setup(
    options = { 
      "py2exe":{ 
      ... 
      "dll_excludes": ["MSVCP90.dll", "HID.DLL", "w9xpopen.exe"], 
      ... 
     } 
    }, 
    console = [{'script': 'program.py'}] 
) 
+0

वीएस -2008 पुनर्वितरण योग्य? क्या यह कुछ नया पैकेज है जिसे मुझे स्थापित करने की आवश्यकता है? – claws

+0

क्षमा करें, मेरा मतलब विज़ुअल सी ++ 2008 रेडिस्ट पैकेज था। मैं ठीक करने के लिए संपादित करेंगे। – nneonneo

+1

यदि यह है तो यह http://www.microsoft.com/en-us/download/details.aspx?id=29 है। तब मैंने इसे स्थापित किया है और इसे बार-बार मरम्मत की है। फिर भी समस्या – claws

3

(नया उत्तर, अन्य जवाब एक वैकल्पिक समाधान का वर्णन करता है के बाद से)

आप WinSxS निर्देशिका से फ़ाइलों को लेते हैं और उन्हें C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT निर्देशिका (सामान्य रूप से दृश्य स्टूडियो द्वारा बनाई गई करने के लिए कॉपी कर सकते हैं, जो आपके पास नहीं है)। उन्हें कॉपी निम्नलिखित संरचना पाने के लिए: फिर

+-Microsoft.VC90.CRT 
    | | 
    | +-Microsoft.VC90.CRT.manifest 
    | +-msvcm90.dll 
    | +-msvcp90.dll 
    | +-msvcr90.dll 

, आप सेटअप प्रोग्राम (अभी भी अन्य जवाब में के रूप में, msvcp90.dll को छोड़कर) चलाने के लिए सक्षम होना चाहिए, और इसे सफलतापूर्वक Microsoft.VC90.CRT अंतर्गत फ़ाइलें खोजने के लिए और उन्हें कॉपी चाहिए आपके बंडल में डेटा फाइल के रूप में।

अधिक जानकारी के लिए the py2exe tutorial देखें।

0

मुझे लगता है कि निर्देशिका में रिक्त स्थान के साथ कुछ है। आपको .rstrip() का उपयोग करने का प्रयास करना चाहिए। उदाहरण के लिए, इसे रखें:

directory='C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT' 
directory=directory.rstrip() 

तब आप वैरिएबल निर्देशिका का उपयोग कर सकते हैं जैसे कि आप वास्तविक पथ का उपयोग करते थे।

यह अजगर निर्देशिका जहां यह पहले यह समझने के लिए सक्षम नहीं होगा पहचान करने में सक्षम बनाना चाहिए।

0

मुझे विंडोज़ पर जटिलता के साथ बड़ी संख्या में समस्याएं होती थीं, जैसे आप जिस समस्या का सामना कर रहे हैं, साथ ही pip install cython के साथ साइथन जैसे पैकेज इंस्टॉल करना।

दो सप्ताह के दर्द के बाद मेरे लिए सबसे अच्छा काम करने वाला समाधान विंडोज़ के लिए अनौपचारिक मिनीजीडब्ल्यू जीसीसी बाइनरी डाउनलोड और चला रहा था here प्रदान किया गया। हो सकता है कि आप इसे एक शॉट देने और देखने में मदद करना चाहें।

यदि आप ऐसा करते हैं, तो हो सकता है कि आप MinGW को अनइंस्टॉल करना चाहें यदि आपके पास पहले से है। मुझे नहीं पता कि यह सख्ती से जरूरी है, लेकिन मैंने हमेशा ऐसा ही किया। मैंने बिना किसी समस्या के सिगविन के साथ साइड-साइड स्थापित किया था।

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