2010-09-23 17 views
17

में विफल रहा है जब py2exe उपयोग करने के लिए एक सरल अजगर खेल मैं exe प्रारूप में बनाया कन्वर्ट करने के लिए कोशिश कर रहा है, यह मेरे निम्न त्रुटि दिया:Py2Exe: DLL लोड

Traceback (most recent call last): 
    File "C:\Users\Tali\Desktop\2exe.py", line 4, in <module> 
    setup(console=['test.py']) 
    File "C:\Python\lib\distutils\core.py", line 152, in setup 
    dist.run_commands() 
    File "C:\Python\lib\distutils\dist.py", line 953, in run_commands 
    self.run_command(cmd) 
    File "C:\Python\lib\distutils\dist.py", line 972, in run_command 
    cmd_obj.run() 
    File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 243, in run 
    self._run() 
    File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 305, in _run 
    dlls = self.find_dlls(extensions) 
    File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 389, in find_dlls 

    self.dll_excludes) 
    File "C:\Python\lib\site-packages\py2exe\build_exe.py", line 1021, in find_dep 
endend_dlls 
    import py2exe_util 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

मैं के बारे में एक घंटे के लिए वेब की खोज, बदल रहा है की कोशिश की मेरे कार्यक्रम में चीजें। कुछ भी काम नहीं करता है। हालांकि मेरा प्रोग्राम "यादृच्छिक" लाइब्रेरी का उपयोग करता है, लेकिन मैंने ऐसा कोई मामला नहीं देखा है जिसमें इस तरह की समस्या हुई है।

स्थापित स्क्रिप्ट:

from distutils.core import setup 
import py2exe 

setup(console=['test.py']) 

हाँ, दोनों लिपियों ही फ़ोल्डर (डेस्कटॉप) में हैं। यदि यह मायने रखता है, तो मैं विंडोज विस्टा पर पाइथन के साथ चल रहा हूं 2.7

आपको बहुत पहले से धन्यवाद।

+0

यदि आप 64 बिट/32 बिट असंगतता का कोई समस्या नहीं रखते हैं, तो आप जांच सकते हैं। – pyfunc

+1

मेरे पास Vista 32-बिट है, और यह सुनिश्चित नहीं है कि मुझे इस तरह की असंगतता की जांच कैसे की जा रही है। – Niv

+0

परिणामी निष्पादन योग्य पर निर्भरता वॉकर चलाने का प्रयास करें यह देखने के लिए कि क्या आपको कुछ अतिरिक्त निर्भरताओं को शिप करने की आवश्यकता है ... – ChristopheD

उत्तर

0

अपनी टिप्पणी से, मुझे लगता है कि आप कमांड प्रॉम्प्ट में यह कर रहे हैं:

setup.py py2exe 
py2exe tutorial के third step से

, आप (आदेश शीघ्र में) के बजाय यह कर किया जाना चाहिए:

python setup.py py2exe 

मूल प्रश्न पर टिप्पणियों पर एक दूसरी नजर से पता चलता है कि यह सुझाव पहले ही बना दिया गया है। इसके लिए joaquin करने के लिए +1।

फिर से अपने प्रश्न का उत्तर देने का प्रयास करने के लिए: जोक्विन ने यह भी उल्लेख किया कि यह एक पथ मुद्दा हो सकता है। इसे ठीक करने की कोशिश करने के बजाय, आप अपनी पायथन फ़ाइलों को सी: \ पायथन में कॉपी करने का आसान विकल्प मान सकते हैं। फिर कमांड प्रॉम्प्ट में:

cd C:\Python 
python setup.py py2exe 

यह हमेशा मेरे लिए काम किया है

आशा इस

+0

यह पहले ही टिप्पणियों में संकेत दिया गया था। ओप पाइथन खोल बनाने वाले 'पायथन' प्राप्त करने में सक्षम नहीं है। – joaquin

+0

मुझे लगता है कि पाइथन स्रोत फ़ाइलों को पाइथन स्थापना निर्देशिका में कॉपी करना एक बुरा विचार है। इसके बजाए, आपको वांछित पायथन EXE को स्पष्ट रूप से चलाया जाना चाहिए, उदाहरण के लिए "c: \ python \ python setup.py py2exe"। या आपको ड्राइव/निर्देशिका को c: \ python (cd/d c: \ python) में बदलना चाहिए और फिर "पायथन डी: \ somefolder \ setup.py py2exe" चलाएं। – jarmod

0

आप py2exe और सिर दर्द के साथ सौदा कर सकते हैं, मैं यह कर की कोशिश की, यहां तक ​​कि जब मैं यह सही था मदद करता है , यह त्रुटि होगी, हालांकि मुझे उत्कृष्ट पायथन प्रोग्राम gui2exe मिला, यह एक exe (या अन्य समर्थित प्रारूपों में से कोई भी) बनाने में बेहद आसान बनाता है।

Gui2exe: http://code.google.com/p/gui2exe/downloads/detail?name=GUI2Exe_0.5.0.zip

उदाहरण: http://code.google.com/p/gui2exe/wiki/GUI2ExeExamples

+0

और क्या यह गैर-जीयूआई स्क्रिप्ट के लिए भी काम करता है? – Niv

+1

@niv ya यह करता है, यह सिर्फ एक अच्छा गुई है जो कुछ समस्याओं को जादूगर रूप से हल करता है और यह भी आसान बनाता है (ठीक है शायद जादू नहीं है लेकिन मेरी डीएल समस्याएं इसका उपयोग करने के बाद चली गईं) – Zimm3r

+0

मैंने यह किया और यह वही स्टैकट्रैक दिया । यह एक ही गैर-कामकाजी सॉफ्टवेयर के लिए एक अग्रभाग है। – korona

2

माइक्रोसॉफ्ट विजुअल C++ 2008 Redistributable पैकेज (x86) को स्थापित करने का प्रयास करें: http://www.microsoft.com/downloads/en/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en

+0

यह वास्तव में मेरे लिए तय किया गया है। मुझे 64 बिट मशीन पर 32 बिट पायथन py2exe संकलन करने में समस्या थी, जिसमें पाइथन-माइस्क्ल स्थापित था। मुझे डीएलएल त्रुटि मिली। लेकिन x86 विजुअल सी ++ 2008 रनटाइम डाउनलोड करना और मेरे स्थापित संस्करण की मरम्मत करना काम किया। – user1479931

33

मैं ठीक उसी समस्या थी।

चूंकि मेरे पास विंडोज 7 64 बिट है, इसलिए मैंने py2exe-0.6.9.win64-py2.6.amd64.exe डाउनलोड किया है, जो मुझे लगता है कि py2exe का 64 बिट संस्करण है। लेकिन यह काम नहीं किया, और मुझे एक ही त्रुटि थी।

मैं py2exe-0.6.9.win32-py2.6.exe में बदल गया, और यह ठीक काम किया।

मुझे लगता है कि आपको विंडोज़ की बजाय पायथन स्थापना के साथ 32 बिट या 64 बिट से मेल खाना पड़ेगा।

वैसे, "setup.py py2exe" या "python setup.py py2exe" वास्तव में कोई फर्क नहीं पड़ता, अगर आपने विंडोज़ को खोलने के निर्देश दिए हैं।पायथन स्थापना के दौरान अजगर के साथ पाई।

+0

यदि आप मानते हैं कि "setup.py" "python setup.py" के समान है, तो आप निश्चित रूप से समस्याओं में भाग ले सकते हैं। यह एक ही मशीन पर एक से अधिक पायथन स्थापना (v2.x और शायद 32-बिट और v3.x दोनों के 64-बिट संस्करणों) के लिए असामान्य नहीं है। यदि आप एक सीएमडी स्क्रिप्ट का उपयोग करते हुए विभिन्न पायथन संस्करणों के बीच स्विच करते हैं जो पाथ और पायथनहोम पर्यावरण चर सेट करता है तो "python setup.py" जो भी python.exe आपके पैथ में पहले होगा, लेकिन "setup.py" चलाना पायथन के किसी भी संस्करण को चलाएगा आपने आखिरी बार स्थापित किया क्योंकि यह पीवाई एक्सटेंशन से जुड़ा हुआ है। तो सावधान रहें। – jarmod

3

मैं एक ही समस्या से मुलाकात की और मैं खोज की है और मैं यहाँ आया था। मैंने जिओ-यू द्वारा संकेत के तरीके की कोशिश की लेकिन मैंने काम नहीं किया। तो मुझे यह http://www.py2exe.org/index.cgi/Tutorial#Step52 से मिला: 5.2.1। सी क्रम DLL

bundling आप msvcr90.dll पुनर्वितरित करने के अधिकार हैं करते हैं, वहाँ इसकी एक प्रति अपने दृश्य स्टूडियो स्थापित करने में, कुलपति \ Redist \ 86 \ Microsoft.VC90.CRT के तहत होना चाहिए। विजुअल स्टूडियो 2008 के बाद से, आप इस डीएलएल फ़ाइल की प्रतिलिपि नहीं बना सकते हैं - आपको उस मेनिफेस्ट फ़ाइल की भी आवश्यकता है जिसे आप वहां पाएंगे। Redist.txt फ़ाइल में कहा गया है कि आपको सभी तीन डीएलएस और अनमोडिफाइड मेनिफेस्ट फ़ाइल वितरित करनी होगी और यह दूसरों के बिना केवल एक डीएल वितरित करने के लिए लाइसेंस समझौते का उल्लंघन है (हालांकि py2exe को केवल MSVCR90.dll की आवश्यकता है।) प्रासंगिक मार्ग Redist.txt फ़ाइल से इस प्रकार है: -----------------------

तो

, यह प्रयास करें।

3

ऐसा लगता है समस्या अपने मंच और संस्करण के लिए सही py2exe इंस्टॉलर डाउनलोड द्वारा हल किया जा सकता है।

मुझे भी यही समस्या थी। मैं विंडोज 7 64 बिट पर चल रहा था और पाइथन 2.7 स्थापित किया था। मेरी समस्या को इस तथ्य के साथ करना पड़ा कि मैंने py2exe-0.6.9.win32-py2.7.exe स्थापित किया है और इंस्टॉलर पाइथन ढूंढने में सक्षम नहीं था, भले ही इसे इंस्टॉलेशन फ़ोल्डर मिला। इस चरण में python setup.py py2exe चलने से मुझे वही त्रुटियां मिलीं जो आप देख रहे हैं।

मैंने फिर this page से py2exe-0.6.9.win64-py2.7.amd64.exe डाउनलोड किया और इसे स्थापित किया। इंस्टॉलेशन बिना किसी हिचकिचाहट के बंद हो गया और python setup.py py2exe मुझे बहुत सारे कंसोल आउटपुट गेम, बिल्ड और डिस्ट फ़ोल्डर्स और अपेक्षित निष्पादन योग्य बनाया गया।

0

मैं py2exe-0.6.9.win64-py2.7.amd64.exe साथ एक ही समस्या है, मैं विंडोज 7 पर अजगर 2.7 (32 बिट) (64 बिट) उपयोग कर रहा था का सामना करना पड़ रहा था , तो समस्या यह थी कि मैं 32 बिट पायथन और 64 बिट py2exe का उपयोग कर रहा था। आप नहीं जानते हैं कि क्या अजगर पैकेज आप उपयोग कर रहे 32 बिट या 64 बिट है, तो से C:\Python27\Lib\idlelib\.

अजगर खिड़की शीघ्र में पहली पंक्ति idle.bat चलाने आप अजगर पैकेज विवरण दिखाएगा।

मैंने py2exe-0.6.9.win64-py2.7.exe को "pip uninstall py2exe" चलाकर अनइंस्टॉल किया और py2exe-0.6.9.win64-py2.7.amd64.exe इंस्टॉल किया जो मेरे लिए काम करता था।

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