मेरे पास एक साधारण स्क्रिप्ट है जिसमें पार्सिंग जोन फ़ाइलों के लिए dnspython पर निर्भरता है। मैं इस स्क्रिप्ट को एक एकल .py के रूप में वितरित करना चाहता हूं कि उपयोगकर्ता इतने लंबे समय तक चल सकें क्योंकि उनके पास 2.6/2.7 इंस्टॉल है। मैं उपयोगकर्ता को निर्भरता साइट पर व्यापक रूप से स्थापित नहीं करना चाहता क्योंकि मौजूदा पैकेज/संस्करणों के साथ संघर्ष हो सकता है, और न ही मैं उन्हें वर्चुअलएन्व के साथ मिलना चाहता हूं। मैं सोच रहा था कि स्क्रिप्ट के अंदर dnspython जैसे पैकेज को एम्बेड करने का कोई तरीका था (gzip/base64) और उस स्क्रिप्ट को उस पैकेज को रनटाइम पर एक्सेस करें। शायद इसे एक डीआईआर में/tmp में अनपैक करें और sys.path में जोड़ें? मैं स्टार्टअप ओवरहेड के बारे में चिंतित नहीं हूं, मुझे बस एक ही चाहिए .py w/सभी निर्भरताओं में शामिल है कि मैं वितरित कर सकता हूं।क्या एक पायथन लिपि में निर्भरताओं को एम्बेड करने का कोई तरीका है?
इसके अलावा, केवल शुद्ध पायथन पैकेज बनाने के लिए कोई सी निर्भरता नहीं होगी।
संपादित करें: स्क्रिप्ट को एक .py होना आवश्यक नहीं है। बस इतना लंबा है क्योंकि यह एक निष्पादन योग्य फ़ाइल है।
यदि आप एक फ़ाइल प्रतिबंध को आराम कर सकते हैं, तो आप अपनी .py फ़ाइल के साथ dnspython लाइब्रेरी को या तो ज़िप फ़ाइल के रूप में या एक नियमित स्टैंडअलोन फ़ाइल के रूप में पैकेज कर सकते हैं - जो निर्भरता समस्या को हल करेगा। क्या आप सिर्फ 1 फाइल रखने के बारे में अशिष्ट हैं? –
नरक लाइसेंस करने के लिए सड़क एम्बेडिंग के साथ पक्का है ... –
@ महमूद अब्देलकेडर मुझे लगता है कि काम करेगा। पाइथन अन्यत्र देखने से पहले पैकेज के लिए वर्तमान निर्देशिका में देखेगा (हालांकि मुझे लगता है कि यह ऑर्डर 3 में बदल रहा है)। फिर भी इच्छा है कि सभी निर्भरताओं को एक निष्पादन योग्य फ़ाइल के रूप में पैकेज करने का एक तरीका था जिसे उपयोगकर्ता चला सकता है और कोई समस्या नहीं है। मुझे लगता है कि यह एक .py होना जरूरी नहीं है। –