सवाल मैं उबंटू पर नवीनतम पायथन 2.7.एक्स या 3. एक्स कैसे स्थापित करूं?


मैं उबंटू पर नवीनतम पायथन टैरबॉल स्थापित करना चाहता हूं, से डाउनलोड किया गया http://python.org/download/

क्या यह स्थापित करने का एक सही तरीका है?

./configure
make
make install

यदि नहीं, तो मैं यह कैसे कर सकता हूं?


157
2018-02-05 12:02


मूल


एक समय में, मुझे लगता है कि इसे स्थापित करने के लिए पूछा गया था नए उबंटू पर पायथन का संस्करण। अब, इसे स्थापित करने की आवश्यकता है बड़े  उबंटू पर अजगर का संस्करण (क्योंकि हम फिर भी बहुत सारी चीजों के लिए अजगर 2.7 की आवश्यकता है) ... tl; dr: यह उत्तर अब वर्तमान / सही नहीं है। इसके बजाय, मान लें कि python3 डिफ़ॉल्ट रूप से स्थापित है (और शायद एक न्यूनतम python2.x), फिर चलाएं: sudo apt-get install python-2.7 python-pip - michael
@michael_n आप किसके बारे में बात कर रहे हैं? स्रोत से संकलन इस उत्तर को गलत या पुराना नहीं बनाता है। यह सिर्फ एक अलग विधि है। यदि आवश्यक हो तो आप प्रक्रिया के लिए स्वचालित स्वचालित करने के लिए उपयुक्त उपयोग कर सकते हैं। - jargonjunkie
आप जो चाहते हैं उसका उपयोग करें। मैं वास्तव में नहीं देखता कि यह पुराने होने के आपके दावे का समर्थन कैसे करता है। जैसा कि आपने स्वयं कहा था, जब आप की आवश्यकता होती है तो आप इसका उपयोग करते हैं क्योंकि यह उपलब्ध नहीं हो सकता है। उदाहरण के लिए, लिनक्स के लिए विंडोज सबसिस्टम कुछ दिनांकित सॉफ़्टवेयर पैकेजों का उपयोग करता है, भले ही डिस्ट्रो ubuntu 16.04.1 (बीटा) है और python2.6.2 का उपयोग करता है, और python3 भी वर्तमान में python2.7.12 है। थैले मामले में, अगर मुझे अद्यतित पैकेज चाहिए तो मुझे संकलन करना चाहिए - jargonjunkie
@jargonjunkie आप ऑफ-विषय हैं, लेकिन सही है। अगर सवाल है "मैं उबंटू 16.04+ पर पायथन 2.7 कैसे स्थापित करूं?" जो यह है (चूंकि 16.04 अब उपलब्ध है, जो मेरा मुद्दा है), तो आप बस sudo apt-get install python2.7। यह केवल इतना आसान नहीं है, यह एकमात्र सही उत्तर है, क्योंकि यह एकमात्र तरीका है कि आप एपीटी-गेट और उनकी निर्भरताओं के बदले स्थापित पायथन मॉड्यूल को संभालने में सक्षम होंगे। - michael
उम्मीद है कि यह चित्रित करने में मदद करता है (जोड़ा गया जवाब)। पाइथन पारिस्थितिकी तंत्र बहुत ही विशिष्ट / परिष्कृत है, और यदि आप सावधानीपूर्वक अपने पायथन पर्यावरण का निर्माण नहीं करते हैं तो आप आसानी से "निर्भरता नरक" में आ सकते हैं askubuntu.com/a/831075/17060 - michael


जवाब:


सबसे पहले, कुछ निर्भरताओं को स्थापित करें:

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

फिर निम्न आदेश का उपयोग कर डाउनलोड करें:

version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz

निकालें और निर्देशिका पर जाएं:

tar -xvf Python-$version.tgz
cd Python-$version

अब, जिस आदेश का आपने अभी प्रयास किया है उसका उपयोग करके इंस्टॉल करें checkinstall यदि आवश्यक हो तो इसे अनइंस्टॉल करना आसान बनाता है:

./configure
make
sudo checkinstall

परिवर्तन version आपको जिस भी संस्करण की आवश्यकता है (version=2.7.1 या version=3.6.0, उदाहरण के लिए)।


184
2018-02-05 12:20



उपयोग sudo make install और नहीं altinstall इसे डिफ़ॉल्ट पायथन संस्करण के रूप में सेट करने के लिए - Shagun Sodhani
उपयोग CXX=g++ ./configure अगर ./configure चेतावनी जारी करता है कि g ++ नहीं मिला था - srj
ऊपर निर्देशित के रूप में स्थापित करने के बाद, कंसोल में मैं कौन से आदेश चलाता हूं यह जांचने के लिए कि वास्तव में यह स्थापित है? - Ciwan
यह काफी असाधारण है कि सरल प्रश्न "पाइथन को कैसे स्थापित करें" का सबसे अच्छा जवाब इस तरह की भयानक चेतावनी लेगा, ऐसा लगता है कि "यह पाइथन स्थापित करने के लिए सबसे अच्छा तरीका है और यह आपके सिस्टम को बहुत अच्छी तरह से तोड़ सकता है" ... यह भी है बहुत आश्चर्य की बात है कि आधिकारिक पायथन वेबसाइट में डाउनलोड के लोड हैं और इंस्टॉल निर्देशों का एक पृष्ठ नहीं है। - patb
पेट - सरल प्रश्न "पाइथन स्थापित करने के लिए" का सबसे अच्छा जवाब है sudo apt-get install python, अधिक जटिल जवाब है "कैसे स्थापित करें नवीनतम पायथन "," स्रोत से "निहितार्थ है। आपके पास किसी भी ओएस पर एक ही समस्या होगी जब तक कि आप किसी तृतीय पक्ष से प्रीकंपिल्ड बाइनरी इंस्टॉल नहीं कर लेते हैं, जो फिर से किसी भी ओएस पर जोखिम भरा होता है (और विभिन्न ओएस में काफी भिन्न होता है) यह उत्तर 2012 से भी है; हालिया सलाह के लिए, देखें askubuntu.com/questions/101591/... - michael


जब तक कि आप वास्तव में इसे संकलित करने की ज्वलंत इच्छा नहीं रखते हैं, वांछित तरीका का उपयोग करना है डेड स्नैक्स पीपीए पायथन के संस्करण स्थापित करने के लिए जो डिफ़ॉल्ट रूप से शामिल नहीं हैं:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

अन्य संस्करण, जैसे कि python2.4 या python3.6, आदि भी उपलब्ध हैं।


159
2018-02-05 14:40



कार्यक्रम नोट: यदि आप 10.04 पर हैं, तो आपको एड-एपीटी-रिपोजिटरी का उपयोग करने से पहले पायथन-सॉफ्टवेयर-गुण स्थापित करना पड़ सकता है। - Craig Maloney
पूर्व-निर्माण बाइनरी से इसे स्थापित करने के बजाय, अपने स्थानीय वातावरण में पाइथन बनाने की अनुशंसा की जाती है - pylover
+1 :) really have a burning desire to compile it yourself - Watt
उल्लेख करने के लिए याद किया कि: 1. ppa आधिकारिक तौर पर अनुमोदित नहीं है, इसलिए सबसे सुरक्षित तरीका स्रोत से निर्माण करना है। 2. इसके परिणामस्वरूप वैश्विक पायथन होगा, गैर-sudoers स्थानीय को नहीं, पैकेज को संशोधित या स्थापित नहीं कर सकते हैं। 3. स्रोत से निर्माण करके विभिन्न स्थानों पर स्थानीय रूप से कई पायथन स्थापित किए जा सकते हैं। - Ioannis Filippidis
apt-get install python2.7यह पाइथन के बजाय बाइनरी पायथन 2.7 स्थापित करता है ... बदसूरत !! - Dhawal


नवीनतम उबंटू रिलीज के लिए इसे दस्तावेज जारी रखना1 : उबंटू 16.04.1 सर्वर के लिए, डिफ़ॉल्ट पायथन संस्करण 3.5 है, और पायथन 2.7 है नहीं डिफ़ॉल्ट रूप से स्थापित। एक ताजा इंस्टॉल पर (ध्यान दें कि यहां तक ​​कि एक भी नहीं है python निष्पादन योग्य):

$ type python3 python2 python 
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found

$ python3 --version 
Python 3.5.2

$ python --version 
The program 'python' can be found in the following packages:
 * python-minimal
 * python3
Try: sudo apt install <selected package>

नोट: जारी रखने से पहले, आप शायद एक त्वरित करना चाहते हैं sudo apt-get update, sudo apt-get upgrade, तथा sudo apt-get dist-upgrade (कृपया ध्यान दें कि वास्तव में ये आदेश वास्तव में क्या कर रहे हैं; मैं यहां एक नया इंस्टॉल मान रहा हूं।)

पायथन 2.7 स्थापित करना उतना ही आसान है जितना:

$ sudo apt-get install python2.7

पायथन 2.7 स्थापित करने का प्रारंभिक आउटपुट निम्नानुसार है:

$ sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
  python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...

पायथन 2.7 स्थापित करने के बाद,

$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found

लेकिन अभी भी एक समस्या है, क्योंकि आप अभी तक पीपीपीआई मॉड्यूल स्थापित नहीं कर सकते हैं pip - उदाहरण के लिए, यदि आप jupyter नोटबुक, या नवीनतम scipy या numpy (आदि) चाहते हैं, तो आप स्थापित करना चाहते हैं pip और फिर pip install वे, और अभी भी मोड़ रहे हैं apt-get किसी भी आवश्यक स्थापित करने के लिए प्रणाली निर्भरता, जैसे ग्राफविज़ या कोर सिस्टम लाइब्रेरीज़।

$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

तो पीआईपी स्थापित करने के लिए, फिर से, यह उतना आसान है जितना आसान है sudo apt-get install python-pip :

$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package

आपको दोनों की आवश्यकता होगी python-pip पायथन 2.7 के लिए pip और यह python3-pip पायथन 3 के लिए pip। के माध्यम से स्थापना apt-get आवश्यक निर्भरताओं को स्थापित करना सुनिश्चित है; उदाहरण के लिए, यहां pip2 स्थापित करने के लिए आउटपुट है:

$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
  python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
  binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
  autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
  python-tk python-setuptools-doc
The following NEW packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
  python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...

इसके परिणामस्वरूप एक दिलचस्प बात होती है: अब आपके पास "मानक" है (और पीईपी अनुशंसित) python2 तथा python3 (जो कि अजगर 2.7 और पायथन 3.5 के लिए सिम्लिंक हैं):

$ type python3 python2 python python2.7 python3.5 
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5

आप भी करना चाहेंगे sudo apt-get install python3-pip; स्थापित करने से पहले, आपके पास है:

$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

स्थापित करने के बाद pip3,

$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
  python-setuptools-doc
The following NEW packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
...etc...

परिणामी संस्करण:

$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3

$ pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

और इससे पहले कि आप जा सकें और अपने सभी पसंदीदा पायथन पीईपीआई मॉड्यूल स्थापित करना शुरू करें: आपको शायद पीपी को अपग्रेड करना होगा (पीपी 2 और पीपी 3 दोनों अलग-अलग; भी इससे कोई फर्क नहीं पड़ता कि इससे कोई फर्क नहीं पड़ता pip के माध्यम से आह्वान किया जाता है python निष्पादन योग्य या pip निष्पादन योग्य, वास्तविक उन्नयन में संग्रहीत हैं /usr/lib):

$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...

अब आप स्टैंड-अलोन चला सकते हैं pip या संस्करण के भीतर बंडल python (के जरिए python -m pip {command})।


[1] ऐतिहासिक पुनरावृत्ति: पुराने उबंटू के पास केवल पायथन 2.6 था, इस प्रकार पाइथन 2.7+ स्थापित करने के लिए सभी विभिन्न विधियां। बाद में, पाइथन 2.7 को सार्वजनिक भंडारों में जोड़ा गया था, फिर भी नवीनतम पायदान के साथ नवीनतम पायथन 2.7 को स्थापित करने के लिए हमें अभी भी एक ही चुनौती थी, जो अक्सर (आवश्यक) आवश्यक था। आज की स्थिति बहुत बेहतर / सरल है: वर्तमान पायथन 2.7 और 3.5 (मूल रूप से केवल दो पायथन मंच संस्करण जिनके बारे में लोग परवाह करते हैं) जो अब सार्वजनिक रिपोज़ में हैं, बहुत स्थिर हैं, इसलिए अब हमें वास्तव में केवल नवीनतम स्थापित करने की चिंता करनी है अजगर मॉड्यूल, नवीनतम नहीं अजगर। तो अब पाइथन "नवीनतम संस्करण समस्या" चली गई है आंशिक रूप में ओएस रिपोज़ से बाहर apt और पीईपीआई में & pip।)


24
2017-09-29 08:50



उबंटू 16.04.1 एलटीएस पर इस निर्देशों के बाद सफलतापूर्वक पायथन 2.7 और इस तरह की पीआईपी स्थापित करें: sudo apt-get python2.7 स्थापित करें; sudo apt-python-pip स्थापित करें; sudo -H python2 -m पाइप स्थापित - अपग्रेड पाइप; # जांच संस्करण: $ पीआईपी - संस्करण -> पाइप 9.0.1 /usr/local/lib/python2.7/dist-packages (पायथन 2.7) से; $ पायथन - संस्करण -> पायथन 2.7.12 - Robert Lujo
वास्तव में सहायक उत्तर - बहुत बहुत धन्यवाद! - Failed Scientist
मेरी अज्ञानता को क्षमा करें, लेकिन क्या मुझे पता चलेगा कि पाइथन संस्करणों को दिखाते समय "हैश" का क्या अर्थ है? - Failed Scientist
@TalhaIrfan यह एक अच्छा सवाल है (और, यदि आप सरलीकृत उत्तर की अनुमति देंगे): जब कमांड को बैश में टाइप किया जाता है (w / अधिकांश गोले के रूप में), cmd एक उपनाम, फ़ंक्शन या निष्पादन योग्य फ़ाइल हो सकता है $PATH। Env var PATH वास्तव में हजारों फाइलों के साथ निर्देशिकाओं की एक लंबी सूची है। निष्पादन योग्य खोजने के लिए, खोल त्वरित लुकअप के लिए कैश किए गए हैशटेबल का उपयोग करता है। यह पुराना हो सकता है, इसलिए "हैश" आपको यह बताता है कि यह निष्पादन योग्य फ़ाइल में मैप किए गए इस आदेश को "याद किया गया" है unix.stackexchange.com/questions/5609/... - michael
@gaia आप एक अलग सवाल पूछना चाह सकते हैं, क्योंकि इसे और अधिक पीछे और आगे की आवश्यकता हो सकती है (या यदि मैंने इसे लिखा है तो कुछ भी बदल गया है)। शायद, पहले इसे सत्यापित करें दोनों  pip (2.7) & pip3 (3.x) पूरी तरह से स्थापित / अपग्रेड किए गए थे, न केवल पूर्व - यानी, sudo apt-get install python-pip python3-pip तथा sudo -H python2 -m pip install --upgrade pip तथा sudo -H python3 -m pip install --upgrade pip  ... या यदि यह वास्तव में एक अनुमति मुद्दा है ("यह सूडो के साथ काम करता है" द्वारा इंगित किया गया है, तो यह ट्रैक करने के लिए थोड़ा और मुश्किल हो जाएगा। - michael


12.04

यदि आप अनुसरण कर रहे हैं अचू का जवाब, तो शब्द libread5-dev में बदला जाना चाहिए libreadline-gplv2-dev। तो पूर्ण आदेश होगा:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

11
2017-07-26 14:37





आप इसे डाउनलोड और इंस्टॉल भी कर सकते हैं pyenv

#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

#Install Python
pyenv install 2.7.8
pyenv global 2.7.8

pyenv install 3.4.5
pyenv global 3.4.5

2
2018-03-30 07:38



उबंटू के पुराने संस्करण पर पाइथन के वास्तव में अद्यतित संस्करण प्राप्त करने का यह सबसे साफ तरीका है। इसमें वर्चुअलएन्व समर्थन भी शामिल है pyenv-virtualenv प्लगइन, बिना किसी संघर्ष के विभिन्न मॉड्यूल आवश्यकताओं के साथ अनुप्रयोगों को स्थापित करना आसान बनाता है। - RichVel
पायनव के बारे में दो चेतावनियां: (1) यह केवल एक बैश खोल से काम करता है (या शायद zsh, लेकिन निश्चित रूप से डैश नहीं है जो उबंटू पर / bin / sh है), और (2) इसके लिए लॉगिन खोल (उदा। bash --login), जो हमेशा प्राप्त करना आसान नहीं होता है उदा। उत्तर से इंटरैक्टिव उपयोग के लिए सर्वश्रेष्ठ, स्क्रिप्टिंग सर्वर के लिए कम अच्छा है। - RichVel