आपकी समस्या को हल करने के लिए दो तरीके हो सकते हैं
- स्थिर बिल्डर, जैसे फ्रीज़, या
pyinstaller
, का उपयोग करेंpy2exe
- संकलन का उपयोग करें
cython
मैं समझाता हूं कि आप इसे दूसरे का उपयोग करके कैसे कर सकते हैं, क्योंकि पहली विधि क्रॉस प्लेटफॉर्म और संस्करण नहीं है, और अन्य उत्तरों में समझाया गया है। इसके अलावा, pyinstaller जैसे कार्यक्रमों का उपयोग आमतौर पर बड़े फ़ाइल आकारों में होता है, जहां साइथन का उपयोग करने के परिणामस्वरूप एक फ़ाइल होगी जो आकार में केबी है।
सबसे पहले, स्थापित करें cython
। फिर, अपनी अजगर फ़ाइल (नाम test.py
) को एक .pyx
फ़ाइल में बदल दें
sudo pip install cython
mv test.py test.pyx
फिर, आप cython
इसे संकलित करने के लिए GCC के साथ उपयोग कर सकते हैं ( cython
पायथन .pyx
फ़ाइल से C फ़ाइल उत्पन्न करता है , और फिर GCC C फ़ाइल संकलित करता है)
( https://stackoverflow.com/a/22040484/5714445 के संदर्भ में )
cython test.pyx --embed
gcc -Os -I /usr/include/python3.5m -o test test.c -lpython3.5m -lpthread -lm -lutil -ldl
नोट : अजगर के अपने संस्करण के आधार पर, आपको अंतिम कमांड को बदलना पड़ सकता है। यह जानने के लिए कि आप किस अजगर का संस्करण उपयोग कर रहे हैं, बस उपयोग करें
$ python -V
अब आपके पास एक बाइनरी फ़ाइल 'टेस्ट' होगी, जिसे आप ढूंढ रहे हैं
अन्य बातों पर ध्यान दें :
- पायथन कार्यक्रमों को गति देने के लिए स्थैतिक स्मृति आवंटन के लिए सी-टाइप वैरिएबल परिभाषाओं का उपयोग करने के लिए साइथन का उपयोग किया जाता है। आपके मामले में, आप अभी भी पारंपरिक पायथन परिभाषाओं का उपयोग कर रहे हैं।
- यदि आप अतिरिक्त पुस्तकालयों का उपयोग कर रहे हैं (जैसे
opencv
, उदाहरण के लिए), तो आपको उन्हें उपयोग करके निर्देशिका प्रदान करनी पड़ सकती है -L
और फिर -l
जीसीसी फ्लैग्स में पुस्तकालय का नाम निर्दिष्ट करना होगा । इस बारे में अधिक जानकारी के लिए कृपया GCC झंडे देखें