मैं सीटीपी के साथ सी पुस्तकालय का उपयोग कर एक अजगर पैकेज बना रहा हूं। मैं अपना पैकेज पोर्टेबल (विंडोज़, मैक और लिनक्स) बनाना चाहता हूं।मेरे पायथन पैकेज के साथ सी लाइब्रेरी के निर्माण से कैसे बचें?
मुझे build_ext
का उपयोग करके pip
के साथ मेरे पैकेज की स्थापना के दौरान लाइब्रेरी बनाने के लिए एक रणनीति मिली। यह लक्ष्य के प्लेटफार्म के आधार पर libfoo.dll
या libfoo.dylib
या libfoo.so
बनाता है।
समस्या यह है कि मेरे उपयोगकर्ता को सीएमके स्थापित करने की आवश्यकता है।
स्थापना के दौरान इमारत से बचने के लिए एक और रणनीति मौजूद है? क्या मुझे अपने पैकेज में निर्मित पुस्तकालयों को बंडल करना है?
मैं अपने उपयोगकर्ताओं को pip install mylib
कराना चाहता हूं।
संपादित: टिप्पणी @Dawid लिए धन्यवाद, मैं किसी भी सफलता के बिना आदेश python setup.py bdist_wheel
के साथ एक python wheel
बनाने की कोशिश कर रहा हूँ।
मैं एम्बेडेड लाइब्रेरी के साथ विभिन्न प्लेटफ़ॉर्म के लिए अपना पायथन व्हील कैसे बना सकता हूं?
संपादित करें 2: मैं अजगर 3.4 और मैक ओएस एक्स पर काम कर उपयोग कर रहा हूँ, लेकिन मैं Windows कंप्यूटर और लिनक्स कंप्यूटर
हां, आपको विशिष्ट प्लेटफ़ॉर्म, 'पाइप इंस्टॉल व्हील' के लिए व्हील पैकेज (बाइनरी संकलित) बनाने की आवश्यकता है और फिर आवश्यक प्लेटफार्मों के लिए निर्माण – Dawid
@ डेविड धन्यवाद, मैंने एक अजगर पहिया बनाने की कोशिश की, लेकिन मुझे लगता है कि मैं हूं कुछ याद आ रहा है –
मुझे लगता है कि आपको उस lib के बारे में जानकारी 'setup.py' में शामिल करने की आवश्यकता है, इसलिए यह इसे बनाएगा। प्रत्येक प्लेटफॉर्म पर 'python setup.py bdist_wheel' निष्पादित करने के तरीके https://docs.python.org/3.4/extending/building.html के साथ कुछ संकलित लाइब्रेरी के साथ उस प्लेटफॉर्म के लिए whl पैकेज बना देगा। फिर लिनक्स पर उपयोगकर्ता मैक के लिए मैक पर विंडोज़ के लिए विंडोज़ पर लिनक्स के लिए पैकेज स्थापित करेंगे। कम से कम मैं उन प्रणालियों के लिए बाइनरी पैकेज बनाने के लिए क्या करूंगा। – Dawid