Ubuntu में Python3 डिफ़ॉल्ट संस्करण बदलें


72

मैं Ubuntu 16.04 LTS का उपयोग कर रहा हूं। मैंने python3स्थापित किया है। दो संस्करण स्थापित हैं, python 3.4.3और python 3.6। जब भी मैं python3कमांड का उपयोग करता हूं , तो यह python 3.4.3डिफ़ॉल्ट रूप से होता है। के python 3.6साथ उपयोग करना चाहता हूं python3

python3 --version दिखाता है version 3.4.3

मैं स्थापित कर रहा हूं ansibleजो समर्थन करता है version > 3.5। इसलिए, जब भी, मैं टर्मिनल में ansible टाइप करता हूं, तो इसकी वजह से त्रुटि होती हैpython 3.4


अजगर 3.6 को निष्पादित करने के लिए किस कमांड का उपयोग किया जाता है?

कमांड है: - python3.6
कोडेकल्यू

3
आपका क्या sudo update-alternatives --config python3कहना है?
मिकेल Kj Decr

1
अद्यतन-विकल्प: त्रुटि: python3 के लिए कोई विकल्प नहीं
codec

Python3 के विशिष्ट संस्करण के साथ ansible का उपयोग करने के तरीके के बारे में नीचे दिए गए उत्तर में मेरी टिप्पणी देखें। आप अजगर 3.4 को हटाने पर भी विचार कर सकते हैं।
मिकेल Kjær

जवाबों:


96

टिप्पणी से:

sudo update-alternatives --config python

आपको एक त्रुटि दिखाएगा:

update-alternatives: error: no alternatives for python3 

आपको अपना अपडेट करने की आवश्यकता है update-alternatives, फिर आप अपने डिफ़ॉल्ट अजगर संस्करण को सेट करने में सक्षम होंगे।

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

तो भागो :

sudo update-alternatives --config python

डिफ़ॉल्ट के रूप में python3.6 सेट करें।

या डिफ़ॉल्ट के रूप में python3.6 सेट करने के लिए निम्न आदेश का उपयोग करें:

sudo update-alternatives  --set python /usr/bin/python3.6

1
यह जवाब शायद टूट जाएगा apt। अजगर के एक अलग संस्करण का चयन करने के बाद चलाने की कोशिश करें sudo apt update। यदि यह आपको एक त्रुटि देता है जैसे ModuleNotFoundError: No module named 'apt_pkg'आप /usr/lib/python3/dist-packagesसिमिलिंक बनाना और बनाना चाहते हैं ln -s apt_pkg.cpython-{34m,36m}-x86_64-linux-gnu.so:।
जियाकोमो अल्जेटा

यह मुझे एक त्रुटि देता है: $ sudo update-alternatives --set python /usr/bin/python3.6 update-alternatives: error: no alternatives for pythonकोई सुझाव?
स्लाव फोमिन II

1
@ GAD3R धन्यवाद मैंने पायथन 3.6 को इंगित करने के लिए मैन्युअल रूप से एक सिमलिंक बनाने में कामयाबी हासिल की है। इसके अलावा, मेरे पास 3.7 स्थापित नहीं हैं।
स्लाव फोमिन II

बनाने python3के लिए बिंदु python3.8इस विधि के साथ तोड़ दिया gnome-terminalमेरे लिए।
बोरिस

10

आप सरल चरणों के नीचे आवेदन करके इसे प्राप्त कर सकते हैं -

  1. टर्मिनल पर अजगर संस्करण की जाँच करें - python --version
  2. रूट उपयोगकर्ता विशेषाधिकार प्राप्त करें। टर्मिनल प्रकार पर -sudo su
  3. रूट यूजर पासवर्ड लिखें
  4. अजगर 3.6 पर स्विच करने के लिए इस कमांड को निष्पादित करें -
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  5. अजगर संस्करण की जाँच करें - python --version
  6. किया हुआ।

1
काम करता है, पढ़ने के लिए सरल है और उपनाम का उपयोग नहीं करता है। +1
कार्लोस पिनज़ॉन

Ubuntu 18.04 पर ठीक काम करता है। अन्य समाधानों की तुलना में बहुत सरल है। बहुत बहुत धन्यवाद
मोहम्मद हैदरी

7

/ Usr / bin / python3 के लिए सिमलिंक बनाएं। मेरे LinuxMint में:

# ls -lh /usr/bin/python3 /usr/bin/python
lrwxrwxrwx 1 root root 9 ноя 24  2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 сен  6  2017 /usr/bin/python3 -> python3.5

# mv /usr/bin/python
# cp /usr/bin/python3 /usr/bin/python
# python --version
Python 3.5.2

6

इन आदेशों का उपयोग करने से आपको मदद मिल सकती है:

  1. अजगर के संस्करण की जाँच करें: ls /usr/bin/python*
  2. उर्फ: alias python='/usr/bin/pythonxx'
  3. पुन लॉगिन: . ~/.bashrc
  4. फिर से अजगर संस्करण की जाँच करें: python --version

धन्यवाद, लेकिन कंप्यूटर को फिर से शुरू करने के बाद मुख्य अजगर अभी भी 2.7 अजगर होगा
मोहम्मद हैदरी

3

एक आसान जवाब python3.6 के लिए एक उपनाम जोड़ना होगा।

बस इस लाइन को फ़ाइल में जोड़ें ~ / .bashrc:, alias python3="python3.6"फिर अपना टर्मिनल बंद करें और एक नया खोलें। अब जब आप टाइप python3 xxxकरेंगे तो इसका अनुवाद हो जाएगा python3.6 xxx

यह समाधान आपके सिस्टम को बहुत भारी पड़ने की आवश्यकता के बिना आपकी समस्या को ठीक करता है।

संपादित करें:

जैसा कि Mikael Kjær ने बताया, यह आपके सिस्टम के साथ ansible की गलत धारणा है।

जैसा कि यहां देखा गया है:

सेट ansible_python_interpreter/ usr / bin / python3 लिए विन्यास विकल्प। Ansible_python_interpreter कॉन्फ़िगरेशन विकल्प आमतौर पर प्रति-होस्ट के रूप में होस्ट या समूह के साथ जुड़े इन्वेंट्री चर के रूप में सेट किया जाता है:

  # Example inventory that makes an alias for localhost that uses python3
  [py3-hosts]
  localhost-py3 ansible_host=localhost ansible_connection=local

  [py3-hosts:vars]
  ansible_python_interpreter=/usr/bin/python3

जैसा कि यहाँ विन्यास फाइल के बारे में देखा गया है :

परिवर्तन एक विन्यास फाइल में बनाया और उपयोग किया जा सकता है जिसे निम्नलिखित क्रम में संसाधित किया जाएगा:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

वास्तव में, मैं ansible स्थापित कर रहा हूं, जो केवल> अजगर 3.5 का समर्थन करता है
कोडेकल्यू

1
आप ansible_python_interpreterअपने python3.6 का उपयोग करने के लिए चर सेट कर सकते हैं । docs.ansible.com/ansible/latest/python_3_support.html
Mikael

@ MikaelKjær मैंने सिर्फ अपना जवाब मेरे जवाब में जोड़ा

1

यदि आपके सिस्टम में अजगर का एकाधिक संस्करण है। आपको बस अजगर के प्रतीकात्मक लिंक को अपडेट करना होगा/usr/bin/

root@irshad:/usr/bin# ls -lrth python*
lrwxrwxrwx 1 root root    9 Apr 16  2018 python -> python2.7
-rwxr-xr-x 1 root root 3.6M Nov 12  2018 python2.7
-rwxr-xr-x 2 root root 4.4M May  7 14:58 python3.6

उपरोक्त उदाहरण में यदि आप देखते हैं कि आप का उत्पादन python2.7python --version होगा

अब नीचे दिए गए कमांड का उपयोग करते हुए अजगर सिमलिंक को अपडेट करें-

root@irshad:/usr/bin# unlink python
root@irshad:/usr/bin# ln -s /usr/bin/python3.6 python
root@irshad:/usr/bin# python --version
Python 3.6.8

0

अद्यतन-विकल्प उपयोगकर्ता-परिभाषित / व्यवस्थापक-परिभाषित सिमिलिंक के लिए सिस्टम सिमलिंक को बदलना है। यदि आपके पास अपने सिस्टम में python3 के कई संस्करण स्थापित हैं और python3 को कॉल करने के लिए python3 संस्करण को नियंत्रित करना चाहते हैं। निम्न कार्य करें

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2

यदि आप भविष्य में प्राथमिकता बदलना चाहते हैं, तो कमांड से नीचे चलाएँ।

update-alternatives --config python3

स्पष्टीकरण: -

sudo update-alternatives --install <symlink_origin> <name_of_config> <symlink_destination> <priority>

आप परिवर्तन name_of_config से python4 पर जा सकते हैं, लेकिन फिर आपको पुन: कॉन्फ़िगर करने के लिए python4 के साथ अद्यतन-विकल्प -config को आमंत्रित करना होगा।

इस दृष्टिकोण का उपयोग करके आप सिस्टम अजगर संस्करण और पायथन 3 संस्करण को अलग से नियंत्रित करने में सक्षम हैं।


0

पहली जांच आप python3.6 फ़ोल्डर करते हैं

ls /usr/bin/python3.6

यदि आपके पास जाने के लिए python3.6 जैसे फ़ोल्डर हैं

फिर अद्यतन-विकल्प

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

अब python3 के लिए नया कॉन्फिगर अपडेट करें

sudo update-alternatives --config python3

अजगर संस्करण की जाँच करें

python3 --version


0

आप simbolic लिंक को ln -sf python3.6 python3अंदर से बदल सकते हैं /usr/bin। इसके साथ जब आप कॉल python3करेंगे तो यह निष्पादित होगाpython3.6

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