मैं स्रोत से पायथन 2.7.3 संकलित करना चाहता हूं। ओएस ओपनएसयूएसई 11.4 x86_64 है, जो पहले ही पाइथन 2.7 प्रदान करता है। मैं नवीनतम सुरक्षा पैच के लिए 2.7.3 का उपयोग करना चाहता हूं, लेकिन यह एक साझा प्रणाली है इसलिए मैं सिस्टम पायथन दुभाषिया के साथ टिंकर नहीं कर सकता।पाइथन 2.7.3 को पाइथन 2.7 के साथ सिस्टम पर स्रोत से संकलित करें .7 पहले से ही
मैं ./configure --prefix=/opt/python --enable-shared
का उपयोग करके संकलित करता हूं। कोई कॉन्फ़िगरेशन त्रुटियां नहीं, इसलिए मैं make
। फिर कोई त्रुटि नहीं। मैं make install
करता हूं (मुझे नहीं लगता कि मुझे make altinstall
की आवश्यकता है, क्योंकि /opt/python
में यह स्थापना उपसर्ग अभी तक उपयोग में नहीं है)।
जब मैं नई बाइनरी /opt/python/bin/python
चलाने की कोशिश करता हूं, पायथन ने 2.7, 2.7.3 के रूप में अपने संस्करण की घोषणा की। इसे सही करने के लिए मुझे मिला एकमात्र तरीका सिस्टम के /usr/lib64/libpython2.7.so.1.0
को स्थानांतरित करना है, और इसे /opt/python/lib/python/libpython2.7.so.1.0
पर सिमलिंक करना है। यह काम करता है और पायथन ने घोषणा की है कि यह 2.7.3 है, लेकिन यह सिस्टम पायथन को तोड़ देता है।
क्या वैसे भी मैं दो को सह-अस्तित्व में प्राप्त कर सकता हूं, उदा। अपने खुद के libpython का उपयोग करने के लिए /opt/python
प्राप्त करके? रनटाइम पर LD_LIBRARY_PATH की आपूर्ति के अलावा। क्या संकलन समय समाधान है? धन्यवाद।
आभासी env – Tim
आप की आवश्यकता क्या 'में देखो - सक्षम करें-shared'? मैंने विभिन्न वितरणों पर एक कस्टम पायथन ज़िलियन बार ('--enable- shared' के बिना) बनाया है और इस पायथन का उपयोग करने के लिए आवश्यक एकमात्र चीज है जिसे 'पथ' को संशोधित करना है। –
ध्यान दें कि यदि आप 'सक्षम-साझा' के बिना पाइथन बनाते हैं, तो आपको एक बड़ी निष्पादन योग्य मिलती है जिसमें संपूर्ण साझा लाइब्रेरी होती है। एम्बेडेडिंग के लिए साझा लाइब्रेरी की आवश्यकता है, यही कारण है कि लिनक्स वितरण '--enable-shared' के साथ बनाते हैं। – user4815162342