2013-05-16 8 views
5

पर py2exe का उपयोग करके संकलन जारी करना मैं विंडोज़ पर चलाने के लिए एक एक्सई फ़ाइल में अपनी स्क्रिप्ट संकलित करने के लिए py2exe का उपयोग कर रहा हूं, लेकिन मैं अपने ओएस के आधार पर त्रुटियों को मार रहा हूं, जो विंडो 7 x64 है। मैं cmd ​​में नीचे स्क्रिप्ट चल रहा हूँ execmaker.py py2exe का उपयोग कर:विंडोज 7 x64

from distutils.core import setup 
import py2exe 

includes = [] 
excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger', 
      'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl', 
      'Tkconstants', 'Tkinter'] 
packages = [] 
dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll', 
       'tk84.dll'] 

setup(
    options = {"py2exe": {"compressed": 2, 
          "optimize": 2, 
          "includes": includes, 
          "excludes": excludes, 
          "packages": packages, 
          "dll_excludes": dll_excludes, 
          "bundle_files": 1, 
          "dist_dir": "dist", 
          "xref": False, 
          "skip_archive": False, 
          "ascii": False, 
          "custom_boot_script": '', 
         } 
       }, 
    windows=['My_Script.py'] #this is the name of the script I'm compiling to exe 

)

वास्तविक स्क्रिप्ट मैं exe में संकलन कर रहा हूँ महत्वपूर्ण नहीं है, क्योंकि यह पूरी तरह से ठीक है जब मैं यह bundle_files: 3, का उपयोग कर संकलित काम किया जो किसी भी फाइल को बंडल नहीं करता है और एक फ़ोल्डर में ~ 200 .pyo फ़ाइलों को छोड़ देता है।

तो चलिए समस्या के केंद्र में आते हैं: जैसा कि मैं विन 7 x64 पर हूं, मेरे पास पाइथन 2.7.5 का 64-बिट संस्करण है। जब मैं cd फ़ाइल पर नीचे execmaker.py और My_Script.py फ़ाइलें cmd ​​(execmaker.py py2exe) में चलाती हैं और इसे चलाती हैं, तो मुझे एक त्रुटि संदेश मिलता है जो निम्नानुसार पढ़ता है: error: bundle-files 1 is not yet supported on win64, जिसका अर्थ यह है कि यह फ़ाइलों को बंडल नहीं करेगा क्योंकि मेरा ओएस 64-बिट है। मैंने सोचा कि शायद यह एक समस्या थी क्योंकि मेरे पास 64-बिट पायथन स्थापित है, लेकिन जब मैंने इसे अनइंस्टॉल किया, तो मुझे त्रुटि मिली DLL load failed: %1 is not a valid Win32 application.

डीएलएल लोड त्रुटि 64-बिट विंडोज़ पर 32-बिट पायथन चलाने के कारण होती है । तो मूल रूप से, यह 32-बिट या 64-बिट पायथन के साथ काम नहीं करता है क्योंकि मैं 64-बिट विंडोज चला रहा हूं। क्या इसके लिए कोई कामकाज है, या क्या मुझे संकलन करने के लिए 32 बिट मशीन पर पाइथन और सभी मॉड्यूल का उपयोग करने की आवश्यकता है?

सहायता के लिए धन्यवाद, और इस लंबे प्रश्न के माध्यम से मेरे साथ असर के लिए धन्यवाद।

संपादित करें - समाधान: मैंने कुछ और शोध किया और कुछ भी नहीं आया। अभी के लिए, जब तक कि इस प्रश्न का उत्तर कुछ अधिक कुशलता से नहीं दिया जाता है, तो मुझे लगता है कि विभाजन पर या समांतरों के माध्यम से 32-बिट ऑपरेटिंग सिस्टम स्थापित करना (जैसा कि मैंने इसे किया है) को पर्याप्त होना होगा।

+1

मुझे एक बहुत लंबा सवाल होगा जो कि यहां दिखाई देने वाले कुछ अन्य ड्रॉ से भी अच्छा विचार किया गया है ("मेरी 400-लाइन फ़ंक्शन में त्रुटि है, बिना किसी त्रुटि के त्रुटि है, और कोड का पूरी तरह से असंबंधित टुकड़ा पोस्ट करना)। मेरी इच्छा है कि मैं आपकी मदद कर सकूं :-) – paxdiablo

+0

मैं भावना की सराहना करता हूं! मेरे पिछले प्रश्नों में से अधिकांश भयानक हैं, इसलिए यह सुनकर बहुत ही अच्छा लगता है कि यह कम हो सकता है। –

+0

'python execmaker.py py2exe' चलाने का प्रयास करें। मैंने पाया है कि कभी-कभी परिणाम (अन्य पायथन स्क्रिप्ट्स) के परिणामस्वरूप दुभाषिया को स्पष्ट रूप से आमंत्रित करने और खिड़की के फाइल एसोसिएशन को इसे संभालने के बीच भिन्न होता है। – martineau

उत्तर

4

मुझे लगता है कि अब आपके लिए बहुत देर हो चुकी है, लेकिन मेरी राय में, अगली आत्मा इस नाव में फंस गई है, मेरी राय में वर्चुअलबॉक्स (vb) को ऑरैकल से मुक्त करने के लिए और फिर 32 बिट ओएस इंस्टॉल करना होगा इस पर। इस तरह आपको अपनी हार्ड ड्राइव को विभाजित करने की आवश्यकता नहीं है या नहीं, और आप बिना किसी जोखिम के किसी भी अन्य प्रोग्राम की तरह vb को अनइंस्टॉल कर सकते हैं।

एक और विकल्प pyinstaller के साथ काम करने का प्रयास करना होगा। मैंने केवल लिनक्स सिस्टम के लिए निष्पादन योग्य बनाने के लिए इसका उपयोग किया है, लेकिन मुझे लगता है कि आप इसे विंडोज़ पर भी इस्तेमाल कर सकते हैं।

-2

आपकी समस्या यह है कि py2exe 32 बिट संस्करण है और x64 विंडोज़ के तहत काम नहीं करता है। यदि यह मामला है, तो जाहिर है, sf.net पर 64 बिट py2exe और here it is की आवश्यकता है।

+0

मेरा मानना ​​है कि मैं पहले से ही 64 बिट py2exe चला रहा था, लेकिन बस यह सुनिश्चित करने के लिए, मैंने उस फ़ाइल को डाउनलोड किया और इसे चलाया। कुछ भी हल नहीं किया गया था। मुझे अभी भी वही त्रुटि संदेश पहले जैसा ही मिल रहा है (वही मूल पोस्टर पूछ रहा था।) – ArtOfWarfare

4

मुझे ओपी के समान समस्या थी। एक 64-बिट विंडोज 7 पायथन 2.7 पर्यावरण में Py2exe के साथ एक पायथन ऐप बंडल किया गया, 32-बिट W7 के तहत थोड़ी देर के लिए अच्छा काम किया। शुरुआती अगस्त 2013 यह अभी भी काम किया। देर नवंबर 2013 को पता चला कि यह संस्करण संघर्ष के कारण काम करना बंद कर दिया था। मेरा सबसे अच्छा अनुमान यह है कि उन तिथियों के बीच एक विंडोज अपडेट ने कड़े संस्करण की जांच की।

मैंने अपने पुराने 32-बिट Vista Python27 dev मशीन पर Py2Exe के साथ ऐप को फिर से बंडल किया, और यह 64-बिट और 32-बिट विंडोज दोनों के तहत फिर से काम किया।

यह (here से) जवाब मेरे लिए सबसे मददगार था:

हालांकि ऐसा करने के लिए सबसे आसान काम सुनिश्चित करें कि आपके 64-बिट Windows स्थापना एक 32-बिट अजगर स्थापना उपयोग कर रहा है बनाने के लिए सिर्फ है । py2exe वास्तव में कुछ भी नहीं बनाता है; यह सिर्फ आपके स्रोत फ़ाइलों को पाइथन दुभाषिया के साथ बंडल करता है, इसलिए जब तक कि दुभाषिया 32-बिट उत्पन्न होता है, जेनरेट किए गए पूर्व या तो मंच पर चलने में सक्षम होना चाहिए।

पूर्णता के लिए, यह त्रुटि संदेश था:।

"[मॉड्यूल का नाम] के इस संस्करण में Windows के संस्करण आप चला रहे हैं साथ संगत नहीं है आपके कंप्यूटर की सिस्टम जानकारी की जाँच करें यह देखने के लिए कि क्या आपको प्रोग्राम के x86 (32-बिट) या x64 (64-बिट) संस्करण की आवश्यकता है, और उसके बाद सॉफ़्टवेयर प्रकाशक से संपर्क करें। "

2

मैं विंडोज 7 पर भी एप्लिकेशन चला रहा हूं। यदि आप पाइथन 2.7 x64 को अनइंस्टॉल कर सकते हैं, तो पाइथन 2.7 x86 को पुनर्स्थापित करें, और अंत में py2exe इंस्टॉल करें। इसने मेरे लिए इस मुद्दे को हल किया।

0

एक ऑनलाइन एक्सई जेनरेटर टूल (py2exe.net) है जो "लगभग" मेरे लिए काम करता है। मैं पायथन 2.7 में प्रोग्रामिंग कर रहा हूं और स्टैंडअलोन निष्पादन योग्य होने की कोशिश करते समय मुझे उस परेशान विंडोज 64 समस्या मिली।

भले ही वेबसाइट ने इस तथ्य का जिक्र किया कि यह पायथन 3.x प्रोग्राम के लिए बनाया गया है, मैंने बस अपना प्रोग्राम अपलोड करने के लिए अपलोड किया।

मेरे कार्यक्रम उपयोग pygame PNG छवियों के लिए कहता है, तो मैं रूप में अच्छी तरह वेबसाइट पर छवियों आयातित

मैं एक निष्पादन योग्य फ़ाइल है कि लगभग स्टैंडअलोन था मिल गया: छवि आयात जाहिरा तौर पर निष्पादन योग्य के रूप में काम नहीं किया केवल सका छवियों वाले फ़ोल्डर में काम करें। लेकिन फिर भी, यह कुछ भी नहीं से बेहतर है।

+0

यह वास्तव में प्रश्न का उत्तर नहीं देता है। यदि आपके पास कोई अलग प्रश्न है, तो आप [प्रश्न पूछें] (https://stackoverflow.com/questions/ask) पर क्लिक करके पूछ सकते हैं। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/) हो जाने पर आप इस प्रश्न पर अधिक ध्यान आकर्षित करने के लिए [एक बक्षीस] (https://stackoverflow.com/help/privileges/set-bounties) भी जोड़ सकते हैं। क्या-प्रतिष्ठा)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/18431479) – baudsp