अपडेट किया गया: 2019-05-11: इस पोस्ट में ज्यादातर उल्लेख किया गया है virtualenv
, लेकिन मॉड्यूल इंस्टॉलेशन के बारे में पायथन डॉक के अनुसार , चूंकि पायथन 3.5 "का उपयोग venv
अब आभासी वातावरण बनाने के लिए अनुशंसित है", जबकि virtualenv
3.4 से पहले पायथन के संस्करणों के लिए एक विकल्प है ।
अद्यतन: 2018-08-17: चूंकि सभी प्लेटफार्मों पर एनाकोंडा के लिए कोंडा-4.4.0 का उपयोग conda
किया activate
गया है
अद्यतन: 2017-03-27: PEP 513 - manylinux
PyPI के लिए बायनेरिज़
अद्यतन: 2016-08-19: कॉन्टिनम एनाकोंडा विकल्प
यह कुछ हद तक easy_install / pip या apt-get का डुप्लिकेट है ।
के लिए वैश्विक अजगर संकुल, उपयोग या तो उबंटू सॉफ्टवेयर केंद्र, उपयुक्त, apt-get या अन्तर्ग्रथनी
उबंटू कई महत्वपूर्ण कार्यों के लिए पायथन का उपयोग करता है, इसलिए अजगर के साथ हस्तक्षेप करना आपके ओएस को दूषित कर सकता है। यह मुख्य कारण है कि मैं का उपयोग कभी नहीं है pip
मेरी Ubuntu पर, लेकिन इसके बजाय मैं का उपयोग या तो उबंटू सॉफ्टवेयर केंद्र, synaptic , apt-get
, या नए बस apt
, जो सभी डिफ़ॉल्ट रूप से से पैकेज इंस्टॉल उबंटू भंडार । इन पैकेजों का परीक्षण किया जाता है, आमतौर पर पूर्व-संकलित किया जाता है ताकि वे तेजी से स्थापित हों और अंततः उबंटू के लिए डिज़ाइन किए गए हों। इसके अलावा सभी आवश्यक निर्भरताएं भी स्थापित की जाती हैं और इंस्टॉल का एक लॉग बनाए रखा जाता है ताकि उन्हें वापस रोल किया जा सके। मुझे लगता है कि अधिकांश पैकेज में लॉन्गपैड रिपोज हैं ताकि आप मुद्दे दर्ज कर सकें।
उबंटू पैकेजों का उपयोग करने का एक और कारण यह है कि कभी-कभी इन पायथन पैकेजों के नाम अलग-अलग होते हैं, जहाँ आप उन्हें डाउनलोड करते हैं। Python-chardet एक पैकेज का एक उदाहरण है जिसे एक समय में PyPI पर एक चीज़ और Ubuntu Ubuntu भंडार में एक और चीज़ का नाम दिया गया था। इसलिए ऐसा कुछ करने का pip install requests
एहसास नहीं होगा कि आपके सिस्टम में पहले से ही chardet स्थापित है क्योंकि Ubuntu संस्करण का एक अलग नाम है, और परिणामस्वरूप एक नया संस्करण स्थापित करें जो आपके सिस्टम को मामूली महत्वहीन तरीके से दूषित करेगा लेकिन फिर भी आप ऐसा क्यों करेंगे।
सामान्य तौर पर आप केवल अपने ओएस में विश्वसनीय कोड इंस्टॉल करना चाहते हैं। इसलिए आपको टाइपिंग के बारे में परेशान होना चाहिए$ sudo pip <anything-could-be-very-bad>
।
अंत में कुछ चीजें उबंटू पैकेजों का उपयोग करके स्थापित करना आसान होती हैं। उदाहरण के लिए यदि आप pip install numpy
सुपीरियर और स्कैपी स्थापित करने का प्रयास करते हैं, जब तक कि आपने पहले से ही गैफरान, एटलस-देव, ब्लास-देव और लैपैक-देव को स्थापित नहीं किया है, तो आपको संकलन त्रुटियों की एक अंतहीन स्ट्रीम दिखाई देगी। हालांकि, उबंटू रिपॉजिटरी के माध्यम से numpy और scipy को स्थापित करना उतना ही आसान है ...
$ sudo apt-get install python-numpy python-scipy
आप भाग्य में हैं, क्योंकि आप उबंटू का उपयोग कर रहे हैं, जो कि सबसे व्यापक रूप से समर्थित और मौजूदा अद्यतित वितरणों में से एक है। सबसे अधिक संभावना है कि आपके द्वारा आवश्यक प्रत्येक पायथन पैकेज उबंटू रिपॉजिटरी में है, और शायद पहले से ही आपकी मशीन पर स्थापित है। और हर 6 महीने में, उबंटू के नवीनतम वितरण के साथ पैकेजों का एक नया चक्र जारी किया जाएगा।
यदि आप 100% आश्वस्त हैं कि पैकेज आपके उबंटू प्रणाली में किसी भी तरह से हस्तक्षेप नहीं करेगा, तो आप इसे पाइप का उपयोग करके स्थापित कर सकते हैं और उबंटू इन पैकेजों को दूर रखने वाले संकुल से दूर रखने के लिए काफी अच्छा है जिसे डिस्ट्रो पैकेज नामक फोल्डर में रखा जाता है। dist-packages/
। उबंटू रिपॉजिटरी में पाइप, वर्चुनेल और सेप्टुपूल दोनों हैं। हालाँकि, मैं दूसरे Wojciech का सुझाव virtualenv का उपयोग करने के लिए।
के लिए व्यक्तिगत अजगर परियोजनाओं एक virtualenv में पिप और पहिया का उपयोग
यदि आपको नवीनतम संस्करण की आवश्यकता है, या मॉड्यूल Ubuntu रिपॉजिटरी में नहीं है, तो एक virtualenv शुरू करें और पैकेज को स्थापित करने के लिए पाइप का उपयोग करें। हालांकि पाइप और सेटपूल को विलय कर दिया गया है, IMO पाइप को आसान-इंस्टॉल या डिस्टुटिल्स पर पसंद किया जाता है, क्योंकि यह हमेशा इंतजार करेगा जब तक कि पैकेज पूरी तरह से डाउनलोड न हो जाए और इसे आपके फाइल सिस्टम में कॉपी करने से पहले बनाया जाए, और यह एक हवा को अपग्रेड या अनइंस्टॉल करता है। बहुत सारे तरीकों में यह एप्ट-गेट के समान है, जिसमें यह आम तौर पर निर्भरता को अच्छी तरह से संभालता है। लेकिन अगर आप करेंगे हो सकता है कुछ निर्भरता अपने आप को संभालने के लिए है, लेकिन जब से पीईपी 513 अपनाया गया था वहाँ अब कर रहे हैं manylinux
Ubuntu और फेडोरा जैसे लोकप्रिय Linux distros के लिए अजगर पैकेज सूचकांक (PyPI) पर बाइनरी ।उदाहरण के लिए के रूप में NumPy और वह SciPy का ऊपर उल्लेख किया है सुनिश्चित करें कि आप स्थापित किया है gfortran, एटलस-देव, ब्लास-देव और Ubuntu रिपोजिटरी से LAPACK-देव उदाहरण के लिए, दोनों NumPy और SciPy अब उबंटू के लिए के रूप में वितरित कर रहे हैं manylinux
पहियों डिफ़ॉल्ट रूप से उपयोग कर रहा OpenBLAS बजाय ATLAS के। आप अभी भी पाइप विकल्पों--no-use-wheel
--no-binary <format control>
का उपयोग करके या स्रोत से उन्हें बना सकते हैं ।
~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy
पाइप के साथ इंस्टॉलेशन स्कीम का उपयोग करके sudoers
अपने व्यक्तिगत प्रोफ़ाइल पर पाइप, सेटप्टूल, वर्चुअनव या पहियों के अपडेट किए गए संस्करणों को स्थापित करने के लिए अगला अनुभाग, "आप में नहीं हो " देखें --user
। आप अपने व्यक्तिगत उपयोग के लिए पाइप को अपडेट करने के लिए इसका उपयोग कर सकते हैं क्योंकि जेएफ सेबेस्टियन ने अपनी टिप्पणी में एक अन्य जवाब में संकेत दिया था । नोट: यह -m
केवल एमएस विंडोज पर केवल आवश्यक है जब पाइप को अपडेट किया जाता है ।
python -m pip install --user pip setuptools wheel virtualenv
पाइप के नए संस्करण स्वचालित रूप से पहियों को कैश करते हैं, इसलिए निम्नलिखित केवल पाइप के पुराने संस्करणों के लिए उपयोगी है। चूंकि आप इन कई बार स्थापित करना समाप्त कर सकते हैं, इसलिए व्हीलहाउस बनाने के लिए पाइप के साथ पहिया का उपयोग करने पर विचार करें। पहिया पहले से ही virtualenv
v13.0.0 से शामिल है, इसलिए यदि आपका संस्करण virtualenv
बहुत पुराना है, तो आपको पहले पहिया स्थापित करना पड़ सकता है।
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
यह बाइनरी व्हील फ़ाइलों को बनाएगा <cwd>/wheelhouse
, -d
एक अलग निर्देशिका निर्दिष्ट करने के लिए उपयोग करेगा। अब यदि आप एक और virtualenv शुरू करते हैं और आपको उन्हीं पैकेजों की आवश्यकता होती है जो आप पहले से ही बना चुके हैं, तो आप उन्हें स्थापित कर सकते हैं अपने व्हीलहाउस का उपयोग करकेpip install --find-links=<fullpath>/wheelhouse
पायथन प्रलेखन में पायथन मॉड्यूल स्थापित करना और पायथन पैकेज इंडेक्स मुख्य पृष्ठ पर संकुल स्थापित करना पढ़ें । इसके अलावा पिप , venv , virtualenv और पहिया ।
यदि आप नहीं हैं sudoers
और virtualenv
स्थापित नहीं है।
वर्चुअल वातावरण का उपयोग करने का एक अन्य विकल्प, या यदि आप रूट विशेषाधिकारों के बिना लिनक्स शेयर का उपयोग कर रहे हैं, तो पायथन की इच्छा के साथ --user
या तो --home=<wherever-you-want>
पायथन इंस्टॉलेशन योजनाओं का उपयोग करके या जहां भी आप चाहते हैं distutils
, के मूल्य पर पैकेज स्थापित करेंगे site.USERBASE
। पाइप के नए संस्करणों में भी एक --user
विकल्प है। उपयोग न करें sudo
!
pip install --user virtualenv
यदि आपका लिनक्स संस्करण पाइप बहुत पुराना है, तो आप सेटअप विकल्पों को पास कर सकते हैं, --install-option
जो कस्टम setup.py
स्क्रिप्ट के लिए कुछ संकुल के लिए कस्टम विकल्प पास करने के लिए उपयोगी है जो एक्सटेंशन का निर्माण करते हैं, जैसे कि सेटिंग PREFIX
। आपको वितरण को निकालने की जरूरत है और distutils
टाइप करके पैकेज को पुराने स्कूल में स्थापित करने के लिए उपयोग कर सकते हैं python setup install [options]
। के कुछ पढ़ना प्रलेखन स्थापित और distutils
प्रलेखन मदद मिल सकती है।
अजगर site.USERBASE
आपके PYTHONPATH
किसी और चीज़ से आगे बढ़ने के लिए काफी अच्छा है , इसलिए परिवर्तन केवल आपको प्रभावित करेंगे। के लिए एक लोकप्रिय स्थान --home
है ~/.local
। सटीक फ़ाइल संरचना और विशेष रूप से जहां आपके साइट-पैकेज हैं , के लिए पायथन मॉड्यूल इंस्टॉलेशन गाइड देखें । नोट : यदि आप का उपयोग --home
स्थापना योजना तो आप को जोड़ने के लिए आवश्यकता हो सकती है PYTHONPATH
का उपयोग करते हुए वातावरण चर export
अपने में .bashrc
, .bash_profile
पायथन में उपलब्ध हो करने के लिए अपने स्थानीय संकुल के लिए या अपने खोल में।
गणित, विज्ञान, डेटा या व्यक्तिगत परियोजनाओं के लिए कॉन्टिनम एनाकोंडा पायथन का उपयोग करें
यदि आप गणित, विज्ञान, या डेटा के लिए पायथन का उपयोग कर रहे हैं, तो IMO एक बहुत अच्छा विकल्प एनाकोंडा-पायथन डिस्ट्रीब्यूशन या एनाकोंडा द्वारा जारी अधिक बुनियादी मिनीकोन्डा डिस्ट्रो , इंक (पहले कॉन्टिनम एनालिटिक्स के रूप में जाना जाता है ) है । हालांकि कोई भी व्यक्तिगत परियोजनाओं के लिए एनाकोंडा का उपयोग करने से लाभान्वित हो सकता है, डिफ़ॉल्ट स्थापना में 500 से अधिक गणित और विज्ञान पैकेज जैसे कि NumPy, SciPy, Pandas, और Matplotlib शामिल हैं , जबकि मिनिकोंडा केवल एनाकोंडा-पायथन और कोंडा पर्यावरण प्रबंधक स्थापित करता है। एनाकोंडा केवल आपकी व्यक्तिगत प्रोफ़ाइल में स्थापित होता है, अर्थात: /home/<user>/
और आपके ~/.bashrc
या आपके ~/.bash_profile
एनाकोंडा के मार्ग $PATH
की अनुशंसा करने के लिए आपके सोर्सिंग की अनुशंसा करता हैconda.sh
में ~/.bashrc
जो आपको conda activate <env|default is base>
एनाकोंडा शुरू करने के लिए उपयोग करता है - यह केवल आपको प्रभावित करता है - आपका सिस्टम पथ अपरिवर्तित है । इसलिए आपको रूट एक्सेस या एनाकोंडा का उपयोग करने की आवश्यकता नहीं है sudo
! यदि आपने पहले से ही एनाकोंडा-पायथन, मिनिकोंडा या कोंडा को अपने व्यक्तिगत पथ में शामिल कर लिया है, तो आपको PATH
अपने निर्यात को हटा देना चाहिए ~/.bashrc
, और नई अनुशंसा पर अपडेट करना होगा , इसलिए आपका सिस्टम पायथन पहले फिर से होगा।
यह कुछ हद तक उस --user
विकल्प के समान है जिसे मैंने अंतिम खंड में समझाया था, सिवाय इसके कि यह पायथन पर लागू होता है, न कि केवल पैकेज के रूप में। इसलिए एनाकोंडा आपके सिस्टम पायथन से पूरी तरह से अलग है , यह आपके सिस्टम पायथन के साथ हस्तक्षेप नहीं करेगा, और केवल आप इसका उपयोग या बदल सकते हैं। चूंकि यह पायथन का एक नया संस्करण स्थापित करता है और इसके सभी पुस्तकालयों के लिए आपको कम से कम 200MB कमरे की आवश्यकता होगी, लेकिन यह कैशिंग और प्रबंध पुस्तकालयों के बारे में बहुत चालाक है जो कि कुछ शांत चीजों के लिए महत्वपूर्ण है जो आप एनाकोंडा के साथ कर सकते हैं।
एनाकोंडा ने एक ऑनलाइन रिपॉजिटरी (जिसे पहले बाइंडर कहा जाता था ) में निर्भरता द्वारा आवश्यक पायथन बायनेरीज़ और पुस्तकालयों के संग्रह को क्यूरेट किया था , और वे अलग-अलग "चैनल" के रूप में उपयोगकर्ता पैकेज की मेजबानी भी करते हैं। एनाकोंडा द्वारा उपयोग किए गए पैकेज मैनेजर conda
, डिफ़ॉल्ट रूप से एनाकोंडा से संकुल स्थापित करता है, लेकिन आप -c
विकल्प का उपयोग करके एक अलग "चैनल" को संकेत कर सकते हैं ।
conda
जैसे पैकेज स्थापित करें pip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
लेकिन conda
इतना अधिक कर सकते हैं! यह भी वर्चुअल वातावरण की तरह ही बना और प्रबंधित कर सकता है virtualenv
। इसलिए चूंकि एनाकोंडा आभासी वातावरण बनाता है, इसलिए pip
पैकेज मैनेजर का उपयोग PyPI से एनाकोंडा वातावरण में या रूट के बिना पैकेज स्थापित करने के लिए किया जा सकता है sudo
। करो नहीं का उपयोग sudo
एनाकोंडा के साथ! चेतावनी! हालांकि मिश्रण करते समय pip
और conda
एनाकोंडा वातावरण में सावधान रहें , b / c आपको पैकेज निर्भरता को अधिक सावधानी से प्रबंधित करना होगा। pip
कोंडा वातावरण में एक और विकल्प कॉन्डा फोर्ज चैनल का उपयोग करना है, लेकिन यह भी सबसे अच्छा है कि डिफ़ॉल्ट चैनल के रूप में कोंडा-फोर्ज के साथ एक ताज़ा कोंडा वातावरण में। अंतिम उपाय के रूप में, यदि आपको कहीं भी पैकेज नहीं मिल रहा है, लेकिन PyPI पर, --no-deps
तो उपयोग करने पर विचार करें, फिर शेष निर्भरता मैन्युअल रूप से उपयोग करके स्थापित करें conda
।
यदि आप उस टूल से परिचित हैं तो एनाकोंडा भी रूबी RVM के कुछ मायनों में समान है । एनाकोंडा conda
आपको पायथन के विभिन्न संस्करणों के साथ आभासी वातावरण बनाने की सुविधा भी देता है । जैसे : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
पायथन -३.५ नामक एक नए वातावरण में एक वैज्ञानिक / डेटा-विज्ञान स्टैक का निर्माण करेगा py35sci
। आप वातावरण का उपयोग कर स्विच कर सकते हैं conda
। Conda-4.4.0 के बाद से, यह अब है अलग करने के लिए virtualenv
जो का उपयोग करता है source venv/bin/activate
, लेकिन पिछले conda-4.4.0conda
आदेशों थे एक ही रूप में virtualenv
और भी इस्तेमाल किया source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
लेकिन रुकिए ज्यादा है! एनाकोंडा भी इस तरह के रूप में अलग-अलग भाषाओं स्थापित कर सकते हैं सांख्यिकीय प्रोग्रामिंग के लिए आर से एनाकोंडा r
चैनल । तुम भी conda के लिए बनाया पैकेज वितरण अपलोड करने के लिए अपना खुद का चैनल स्थापित कर सकते हैं । जैसा कि उल्लेख किया गया है कि कोंडा-फोर्ज कोंडा-फोर्ज एनाकोंडा चैनल पर PyPI पर कई पैकेजों के स्वचालित निर्माण को बनाए रखता है ।
उपसंहार
आपकी व्यक्तिगत आवश्यकताओं और पहुंच के आधार पर लिनक्स पर अपने पायथन प्रोजेक्ट्स को बनाए रखने के लिए कई विकल्प हैं। हालांकि, अगर कोई एक चीज है जो मुझे आशा है कि आपsudo
इस जवाब से दूर ले जाएंगे, तो आपको पायथन पैकेजों को स्थापित करने के लिए लगभग कभी भी उपयोग करने की आवश्यकता नहीं होनी चाहिए । का उपयोग आप के लिए sudo
एक गंध होना चाहिए कि कुछ एमिस है। आपको चेतावनी दी गई है।
गुड लक और खुश कोडिंग!