के साथ छवियों और कुछ कॉन्फ़िगरेशन फ़ाइलों को बनाएं, मुझे पाइथन प्रोग्राम में छवियों और txts जैसी कुछ डेटा फ़ाइलों को जोड़ने के दौरान pyinstaller के साथ कोई समस्या है। उदाहरण के लिए, मैंने आइकन के साथ टूलबार बनाया है, और मैं उन्हें छवियों के एक अलग फ़ोल्डर में संग्रहीत करता हूं। इसके अलावा मेरे पास कुछ कॉन्फ़िगरेशन स्टोर करने के लिए कुछ txt और xml फ़ाइलें हैं। ये txt चींटी xml फ़ाइलों को data_files नामक किसी अन्य फ़ोल्डर में संग्रहीत किया जाता है। सभी पीई फाइलों को स्रोत नाम के दूसरे फ़ोल्डर में संग्रहीत किया जाता है।छवियों और कुछ कॉन्फ़िगरेशन फ़ाइलों जैसे कि txtinstaller
जब मैं pyinstaller के साथ इस पायथन प्रोग्राम को बनाने का प्रयास कर रहा हूं, pyinstaller सफलतापूर्वक सभी स्रोत फ़ोल्डर का निर्माण कर सकता है, लेकिन छवियों और डेटा_फाइल फ़ोल्डरों का निर्माण नहीं किया जा सकता है। मैंने pyinstaller के प्रलेखन की जांच की लेकिन मुझे कोई समाधान नहीं मिला। मैंने बहुत सारी Google खोज की हैं और केवल this सहायक के रूप में रिसोर्स पाई हैं, लेकिन यह एक बहुत ही अपर्याप्त संसाधन है।
मेरा मुख्य प्रश्न यह है: मैं एक अलग फ़ाइल के साथ एक exe फ़ाइल कैसे बना सकता हूं जैसे छवियों और pyinstaller का उपयोग करके confs?
संपादित करें: मुझे समाधान मिला। जब आप spec फ़ाइल बनाते हैं तो आपको a.datas पैरामीटर होना चाहिए।
# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), '/home/vmode/Desktop/derlem2/sources/TextSTAT.py'],
pathex=['/home/pyinstaller'])
a.datas += [("Images/New.gif","/home/vmode/Desktop/derlem2/Images/New.gif","DATA")]
a.datas += [("Images/Open.gif","/home/vmode/Desktop/derlem2/Images/Open.gif","DATA")]
a.datas += [("Images/Column.gif","/home/vmode/Desktop/derlem2/Images/Column.gif","DATA")]
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'TextSTAT'),
debug=False,
strip=False,
upx=True,
console=1)
उपर्युक्त स्पेक कोड मेरी परियोजना के लिए डिज़ाइन किया गया है। जैसा कि इस स्पेस कोड में देखा गया है, मैंने पायथन प्रोग्राम के साथ निर्माण करने के लिए 3 आइकन शामिल किए हैं। जब प्रोग्राम उत्पन्न होता है तो इन आइकनों को एम्बेड किए गए एक स्टैंडअलोन निष्पादन योग्य फ़ाइल होती है।
लेकिन अगर हमारे पास इतनी सारी फाइलें हैं तो क्या होगा? मान लीजिए कि हमारे कार्यक्रम में उपयोग करने के लिए हमारे पास 1000 आइकन हैं। हाथ से spec फ़ाइल को लिखना बहुत अपर्याप्त है। फ़ाइल निर्देशिका को पढ़ने और इन फ़ाइलों को गतिशील रूप से जोड़ने के लिए एक लूप सिस्टम होना चाहिए। लेकिन मुझे नहीं पता कि इन फ़ाइलों को गतिशील रूप से कैसे जोड़ा जाए। मुझे लगता है कि हाथ से इन इतनी सारी फाइलें जोड़ने का कोई मौका नहीं है। यदि कोई जानता है, तो कृपया साझा करे।
उपयोग कर सकते हैं 'प्रयास करें cx_freeze'। मैंने 'py2exe', 'pyinstaller', कुछ अन्य यादृच्छिक प्रोग्राम की कोशिश की, और केवल' cx_freeze' ने मेरे लिए काम किया (मैंने PyQt4 का उपयोग किया)। यदि आप बाइनरी बनाने के लिए अपना कोड देखना चाहते हैं, तो यह गिटहब पर है: https://github.com/blender3D/Bindery/blob/master/tools/binary.py – Blender
आपकी रुचि के लिए धन्यवाद। लेकिन cx_freeze केवल .exe फ़ाइल बनाता है। मैं प्रोग्राम को सभी प्लेटफ़ॉर्म बनाने के लिए तैयार करना चाहता हूं। तो मुझे pyinstaller का उपयोग करना है। लेकिन कुछ बड़े ट्यूबल हैं। – user1150508
नहीं, 'cx_freeze' लिनक्स के लिए भी बाइनरी बनाता है। मैक को Py2app की आवश्यकता है। – Blender