एक ही मशीन पर कई पायथन संस्करण?


89

क्या पायथन वेबसाइट पर कहीं आधिकारिक दस्तावेज है, कैसे लिनक्स पर एक ही मशीन पर पायथन के कई संस्करणों को स्थापित करने और चलाने के लिए?

मैं ब्लॉग पोस्ट और उत्तरों के gazillions पा सकता हूं, लेकिन मैं यह जानना चाहता हूं कि क्या ऐसा करने का "मानक" आधिकारिक तरीका है?

या यह सब ओएस पर निर्भर है?

जवाबों:


79

मुझे लगता है कि यह पूरी तरह से स्वतंत्र है। बस उन्हें स्थापित करें, फिर आपके पास आदेश हैं उदा /usr/bin/python2.5और /usr/bin/python2.6। /usr/bin/pythonआप जिसे डिफ़ॉल्ट के रूप में उपयोग करना चाहते हैं उससे लिंक करें ।

सभी लाइब्रेरी वैसे भी अलग-अलग फ़ोल्डरों (संस्करण के नाम पर) में हैं।

यदि आप मैन्युअल रूप से संस्करण संकलित करना चाहते हैं, तो यह पायथन स्रोत कोड की रीडमी फ़ाइल से है:

कई संस्करण स्थापित करना

यूनिक्स और मैक सिस्टम पर यदि आप एक ही इंस्टॉलेशन प्रीफ़िक्स (कॉन्फ़िगर स्क्रिप्ट में एक से अधिक तर्क) का उपयोग करके पायथन के कई संस्करणों को स्थापित करने का इरादा रखते हैं, तो आपको ध्यान रखना चाहिए कि एक अलग संस्करण की स्थापना द्वारा आपके प्राथमिक पायथन निष्पादन योग्य को ओवरराइट नहीं किया गया है। "मेक अल्टीमेट" का उपयोग करके स्थापित सभी फाइलों और निर्देशिकाओं में प्रमुख और मामूली संस्करण शामिल हैं और इस प्रकार साइड-बाय-साइड रह सकते हैं। "मेक इनस्टॉल" भी $ {उपसर्ग} / बिन / पायथन 3 बनाता है जो $ {उपसर्ग} /bin/pythonX.Y को संदर्भित करता है। यदि आप एक ही उपसर्ग का उपयोग करके कई संस्करणों को स्थापित करने का इरादा रखते हैं, तो आपको यह तय करना होगा कि कौन सा संस्करण (यदि कोई हो) आपका "प्राथमिक" संस्करण है। "संस्करण स्थापित करें" का उपयोग करके उस संस्करण को स्थापित करें। "Make altinstall" का उपयोग करके अन्य सभी संस्करणों को स्थापित करें।

उदाहरण के लिए, यदि आप 2.6 के प्राथमिक संस्करण होने के साथ अजगर 2.5, 2.6 और 3.0 को स्थापित करना चाहते हैं, तो आप अपनी 2.6 बिल्ड निर्देशिका में "इंस्टॉल करें" और अन्य में "अल्टिमेट इंस्टॉल करें" पर अमल करेंगे।


5
धन्यवाद, प्राथमिक पर "मेक इनस्टॉल" और सेकेंडरी पर "अल्टीमेट इंस्टॉलेशन" को स्पष्ट कर दिया।
— एंड्री दिरोज़िडुक

4
संस्करणों के बीच पुस्तकालयों को साझा करने का कोई सही तरीका? मान लें कि मेरे पास 2.6 के लिए MySQLdb है, फिर 2.7 स्थापित किया गया है। मैं 2.7 के लिए MySQLdb कैसे उपलब्ध करूं?
— रोमिरोज़

आपके द्वारा दी गई सभी जानकारी यूनिक्स / लिनक्स और मैक ओएस के लिए है, इसलिए स्पष्ट रूप से ओएस की "पूरी तरह से स्वतंत्र" नहीं है, जैसा कि ओपी पूछता है। विंडोज के लिए प्रक्रिया काफी अलग है लेकिन समान रूप से आसान है।
— wwwayne

28

विंडोज पर वे अलग-अलग फ़ोल्डर में स्थापित हो जाते हैं, "C: \ python26" और "C: \ python31", लेकिन निष्पादनयोग्य का "python.exe" नाम समान है।

मैंने एक और "C: \ python" फ़ोल्डर बनाया जिसमें "python.bat" और "python3.bat" शामिल हैं जो क्रमशः "python26" और "python31" के रैपर के रूप में कार्य करते हैं और "C: \ python" को PATHपर्यावरण चर में जोड़ते हैं ।

यह मुझे टाइप करने के लिए pythonया python3मेरे .bat पायथन रैपर में टाइप करने की अनुमति देता है जो मैं चाहता हूं।

लिनक्स पर, आप यह #!निर्दिष्ट करने के लिए ट्रिक का उपयोग कर सकते हैं कि आप किस संस्करण का उपयोग करना चाहते हैं।


उन .bat फ़ाइलों में क्या जोड़ना है?
— एडिस

इस उत्तर को केवल इसलिए न उठाएं क्योंकि यह बहुत ही विंडोज़-विशिष्ट है और यह सवाल लिनक्स से संबंधित था, अन्यथा महान जानकारी।
— जिम अहो

2
उपयोगकर्ता अब मौजूद नहीं है, मैं वास्तव में उस बैच फ़ाइल को चाहता था
— वारगॉग

6
इसे मैंने अपनी python.bat फ़ाइल (केवल एक पंक्ति) में रखा है: "c: \ python27 \ python% *" फिर मैं इसे सामान्य रूप से लागू करता हूं, अर्थात 'python test.py' और% * सभी तर्कों को पकड़ लेगा। और इसे वास्तविक निष्पादन योग्य पास करें। आप अपने C: \ bin फ़ोल्डर में सीधे mklink का उपयोग कर सकते हैं। विवरण के लिए यहां देखें: stackoverflow.com/a/13953614/865929
— सीन ग्लवर

1
अब आप बस चला सकते हैं py -3.4या py -2.7प्रोग्राम py(अंडर C:\Windows) उस अजगर इंटरप्रेटर को चुन लेंगे (यह मानते हुए कि यह स्थापित है)।
— जेम्सटॉमासून 1979

14

अपडेट 2019: उपयोग करना asdf

इन दिनों मैं एक दूसरे के बगल में पायथन दुभाषियों के विभिन्न संस्करणों को स्थापित करने के लिए asdf का उपयोग करने का सुझाव देता हूं ।

नोट 1: asdfकेवल पायथन के लिए ही नहीं बल्कि सभी प्रमुख भाषाओं के लिए काम करता है।

Note2: asdfलोकप्रिय पैकेज-प्रबंधकों जैसे कि पिपेनव और कविता के साथ संयोजन में ठीक काम करता है ।

यदि आपके पास asdf स्थापित है तो आप नए पायथन दुभाषियों को आसानी से डाउनलोड / इंस्टॉल कर सकते हैं:

# Install Python plugin for asdf:
asdf plugin-add python

# List all available Python interpreters:
asdf list-all python

# Install the Python interpreters that you need:
asdf install python 3.7.4
asdf install python 3.6.9
# etc...

# If you want to define the global version:
asdf global python 3.7.4

# If you want to define the local (project) version:
# (this creates a file .tool-versions in the current directory.)
asdf local python 3.7.4

पुराना उत्तर: पायथन को स्रोत से स्थापित करें

यदि आपको उबंटू / टकसाल पर पायथन के कई संस्करणों (मुख्य एक के बगल में) स्थापित करने की आवश्यकता है : (अन्य यूनिक्स पर समान काम करना चाहिए।)

1) स्रोत संकलन के लिए आवश्यक संकुल स्थापित करें

$ sudo apt-get install build-essential checkinstall
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

2) वांछित पायथन संस्करण को डाउनलोड करें और निकालें

लिनक्स के लिए पायथन सोर्स को टैरबॉल के रूप में डाउनलोड करें और इसे स्थानांतरित करें/usr/src ।

डाउनलोड किए गए पैकेज को जगह में निकालें। ('x को अपने डाउनलोड किए गए संस्करण के साथ बदलें)

$ sudo tar xzf Python-x.x.x.tgz

3) पायथन सोर्स को संकलित और स्थापित करें

$ cd Python-x.x.x
$ sudo ./configure
$ sudo make altinstall

आपका नया पायथन बिन अब स्थित है /usr/local/bin। आप नए संस्करण का परीक्षण कर सकते हैं:

$ pythonX.X -V
Python x.x.x
$ which pythonX.X
/usr/local/bin/pythonX.X

# Pip is now available for this version as well:
$ pipX.X -V
pip X.X.X from /usr/local/lib/pythonX.X/site-packages (python X.X)

6

विभिन्न पायथन संस्करणों को कैसे स्थापित किया जाए, यह वास्तव में ओएस पर निर्भर है।

हालाँकि, यदि आप लिनक्स पर हैं, तो आप आसानी से विभिन्न संस्करणों के बीच प्रबंधन और स्विच करने में मदद करने के लिए पाइथोन्ब्रेव या पाइथनोज़ जैसे उपकरण का उपयोग कर सकते हैं ।


मैंने एक मैक पर स्थापित किया है जिसमें कॉन्फिगरेशन / अल्टीमेट स्थापना है अब तक कोई समस्या नहीं।
— एवगेनी

क्या $user1डिफ़ॉल्ट रूप से एक और अजगर संस्करण देना संभव है ?
— रोलैंड

1
@ रोलैंड pyenvउसके लिए काम करेगा। ऊपर दिए गए लिंक में रीडमी से:> [देता है] आप प्रति उपयोगकर्ता के आधार पर वैश्विक पायथन संस्करण को बदलते हैं।
— दीदीह

5

मैं मैक और सबसे अच्छा तरीका है कि मेरे लिए काम किया है का उपयोग कर रहा हूँ pyenv का उपयोग कर रहा हूँ!

नीचे दिए गए आदेश मैक के लिए हैं, लेकिन लिनक्स के समान हैं (नीचे दिए गए लिंक देखें)

#Install pyenv
brew update
brew install pyenv

मान लें कि आपके पास अपने मैक पर प्राथमिक संस्करण के रूप में अजगर 3.6 है:

python --version 

आउटपुट:

Python <your current version>

अब python 3.7 स्थापित करें, पहले सभी को सूचीबद्ध करें

pyenv install -l

चलो 3.7.3 लेते हैं:

pyenv install 3.7.3

इसे टर्मिनल में चलाना सुनिश्चित करें (इसे ~ / .bashrc या ~ / .zshrc पर जोड़ें)।

export PATH="/Users/username/.pyenv:$PATH"
eval "$(pyenv init -)"

अब इसे केवल खुले हुए टर्मिनल / शेल पर चलाएं :

pyenv shell 3.7.3

अब दौड़ो

python --version

आउटपुट:

Python 3.7.3

और कम महत्वपूर्ण नहीं सेट नहीं खोला खोल / iTerm में यह:

pyenv shell --unset

आप इसे विश्व स्तर पर या स्थानीय रूप से भी चला सकते हैं


1

पैकेज प्रबंधक - उपयोगकर्ता-स्तर

एक पैकेज मैनेजर के लिए जो अजगर के कई संस्करणों को स्थापित और प्रबंधित कर सकता है, ये अच्छे विकल्प हैं:

  • pyenv - केवल अजगर के संस्करणों को स्थापित और प्रबंधित करने में सक्षम है
  • asdf - कई अलग-अलग भाषाओं को स्थापित करने और प्रबंधित करने में सक्षम

इन पैकेज प्रबंधकों के लिए लाभ यह है कि उन्हें स्थापित करना और उनके साथ अजगर के कई संस्करणों को स्थापित करना आसान हो सकता है क्योंकि यह स्रोत से अजगर को स्थापित करना है। वे शिम का उपयोग करके आसानी से उपलब्ध अजगर संस्करण को बदलने और अजगर-निर्देशिका को प्रति-निर्देशिका सेट करने के लिए कमांड प्रदान करते हैं।

यह नुकसान यह है कि, डिफ़ॉल्ट रूप से, वे उपयोगकर्ता-स्तर (आपके घर निर्देशिका के अंदर) में स्थापित होते हैं और उपयोगकर्ता-स्तर के कॉन्फ़िगरेशन की थोड़ी आवश्यकता होती है - आपको अपनी ~/.profileऔर ~/.bashrcइसी तरह की फ़ाइलों को संपादित करने की आवश्यकता होगी । इसका मतलब यह है कि सभी उपयोगकर्ताओं के लिए वैश्विक रूप से कई अजगर संस्करणों को स्थापित करने के लिए उनका उपयोग करना आसान नहीं है। ऐसा करने के लिए, आप ओएस के मौजूदा अजगर संस्करण के साथ स्रोत से स्थापित कर सकते हैं।


स्रोत से स्थापना - सिस्टम-वाइड

आपको इस विधि के लिए मूल विशेषाधिकारों की आवश्यकता होगी।

अतिरिक्त विचारों और विकल्पों के लिए स्रोत से निर्माण के लिए आधिकारिक अजगर दस्तावेज देखें ।

/usr/localसाझा (सिस्टम-वाइड) सॉफ़्टवेयर को स्थापित करने के लिए एक सिस्टम एडमिनिस्ट्रेटर के लिए निर्दिष्ट स्थान है, इसलिए यह सबडायरेक्टरीज अजगर स्रोत को डाउनलोड करने और स्थापित करने के लिए एक अच्छी जगह है। लिनक्स फाउंडेशन के फ़ाइल पदानुक्रम मानक का खंड 4.9 देखें ।

किसी भी निर्माण निर्भरता को स्थापित करें। डेबियन आधारित प्रणालियों पर, उपयोग करें:

apt update
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev

चुनें कि आप किस अजगर संस्करण को स्थापित करना चाहते हैं। अजगर स्रोत विज्ञप्ति देखेंएक सूची के लिए पृष्ठ ।

पायथन संस्करण (यानी ) के साथ नीचे की /usr/local/srcजगह, डाउनलोड और अनज़िप फ़ाइल ।X.X.X3.8.2

cd /usr/local/src
wget https://www.python.org/ftp/python/X.X.X/Python-X.X.X.tgz
tar vzxf Python-X.X.X.tgz

निर्माण और स्थापित करने से पहले, CFLAGSसी संकलक झंडे के साथ पर्यावरण चर सेट करें (जीएनयू के makeदस्तावेज देखें )। यह आमतौर पर सामान्य उपयोग के लिए आवश्यक नहीं है, लेकिन यदि, उदाहरण के लिए, आप इस अजगर संस्करण के साथ एक यूडब्ल्यूएसजीआई प्लगइन बनाने जा रहे थे, तो आप झंडे को सेट करना चाह सकते हैं, -fPICनिम्नलिखित के साथ:

export CFLAGS='-fPIC'

कार्यशील निर्देशिका को अनज़िप किए गए पायथन स्रोत निर्देशिका में बदलें, और बिल्ड को कॉन्फ़िगर करें। आप शायद प्रोफ़ाइल निर्देशित अनुकूलन के लिए आदेश --enable-optimizationsपर विकल्प का उपयोग करना चाहते हैं । का प्रयोग करें उचित उपनिर्देशिका (करने के लिए स्थापित करने के लिए , , आदि)।./configure--prefix=/usr/local/usr/local/bin/usr/local/lib

cd Python-X.X.X
./configure --enable-optimizations --prefix=/usr/local

एकाधिक संस्करणों को स्थापित करते समय किसी भी फाइल को ओवरराइड करने से बचने के लिए प्रोजेक्ट को बनाएं makeऔर स्थापित करें make altinstall। अजगर निर्माण प्रलेखन के इस पृष्ठ पर चेतावनी देखें ।

make -j 4
make altinstall

तब आपको अपने नए अजगर और पाइप संस्करणों को चलाने में सक्षम होना चाहिए pythonX.Xऔर pipX.X(यानी python3.8और pip3.8)। ध्यान दें कि यदि आपकी नई स्थापना का लघु संस्करण OS के संस्करण के समान है (उदाहरण के लिए यदि आप python3.8.4 स्थापित कर रहे थे और OS ने python3.8.2 का उपयोग किया था), तो आपको संपूर्ण पथ ( /usr/local/bin/pythonX.X) या सेट निर्दिष्ट करने की आवश्यकता होगी उपनाम इस संस्करण का उपयोग करने के लिए।


0

यह आपके द्वारा उपयोग की जाने वाली पैकेज वितरण प्रणाली पर सबसे अधिक निर्भर है। उदाहरण के लिए, MacPorts के साथ, आप कई पायथन पैकेज स्थापित कर सकते हैं और उपयोग कर सकते हैंpyselect आसानी से उन दोनों के बीच डिफ़ॉल्ट स्विच करने के उपयोगिता का । हर समय, आप पूर्ण पथ प्रदान करके विभिन्न पायथन दुभाषियों को कॉल करने में सक्षम होते हैं, और आप उन लोगों के लिए पूर्ण पथ प्रदान करके सभी पायथन पुस्तकालयों और शीर्षकों के खिलाफ लिंक करने में सक्षम होते हैं।

इसलिए मूल रूप से, आप जो भी संस्करण इंस्टॉल करते हैं, जब तक आप अपने इंस्टॉलेशन को अलग रखते हैं, आप उन्हें अलग से चला सकेंगे।


पैकेज वितरण प्रणाली क्या है?
— एंड्री Drozdyuk

@ डर्जोजी: उदाहरण के लिए आरपीएम का उपयोग ओपनस्यूस या एप्ट द्वारा किया जाता है जिसका उपयोग डेबियन-आधारित वितरण या जेंटो द्वारा उपयोग किए गए पोर्टेज आदि के आधार पर किया जाता है। मूल रूप से यह सॉफ्टवेयर इंस्टॉल करने का एक उपकरण है।
— फेलिक्स क्लिंग

0

मैंने एनाकोंडा नाविक के साथ ऐसा किया। मैंने एनाकोंडा नेविगेटर स्थापित किया और विभिन्न अजगर संस्करणों के साथ दो अलग-अलग विकास वातावरण बनाए

और अलग-अलग अजगर संस्करणों के बीच स्विच करके या वातावरण को सक्रिय और निष्क्रिय करके।

पहले एनाकोंडा नाविक स्थापित करें और फिर वातावरण बनाएं।

पर्यावरण को प्रबंधित करने के तरीके के बारे में यहां देखें

https://docs.anaconda.com/anaconda/navigator/tutorials/manage-environments/

यहाँ यह कोंडा के साथ करने के लिए वीडियो है

https://youtu.be/EGaw6VXV3GI

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.