Pertanyaan Bagaimana cara menginstal Python 2.7.X atau 3.X terbaru di Ubuntu?


Saya ingin menginstal tarball Python terbaru di Ubuntu, diunduh dari http://python.org/download/.

Apakah ini cara yang benar untuk memasang?

./configure
make
make install

Jika tidak, bagaimana saya melakukannya?


157
2018-02-05 12:02


asal


Pada suatu waktu, saya membayangkan ini diminta untuk menginstal lebih baru versi python di Ubuntu. Sekarang, diperlukan untuk menginstal lebih tua  versi python di Ubuntu (karena kami masih membutuhkan python 2.7 untuk banyak hal) ... tl; dr: jawaban ini tidak lagi aktual / benar. Sebaliknya, asumsi python3 terinstal secara default (dan mungkin python2.x minimal), kemudian jalankan: sudo apt-get install python-2.7 python-pip - michael
@michael_n apa yang kamu bicarakan? kompilasi dari sumber tidak membuat jawaban ini salah atau ketinggalan jaman. itu hanya metode yang berbeda. Anda dapat menggunakan apt untuk mengotomatiskan proses untuk Anda jika diperlukan. - jargonjunkie
kamu menggunakan apa yang kamu butuhkan. Saya tidak benar-benar melihat bagaimana ini mendukung klaim Anda tentang hal ini sudah ketinggalan zaman. seperti yang Anda katakan pada diri sendiri, Anda menggunakannya ketika Anda perlu karena mungkin tidak tersedia. Sebagai contoh, subsistem windows untuk linux menggunakan beberapa paket perangkat lunak tertanggal bahkan distro adalah ubuntu 16.04.1 (beta) dan menggunakan python2.6.2, dan python3 bahkan tho saat ini adalah python2.7.12. Dalam hal ini, saya harus melakukan kompilasi jika saya ingin paket terbaru - jargonjunkie
@jargonjunkie kamu diluar topik, tapi benar. Jika pertanyaannya "Bagaimana cara menginstal python 2.7 di ubuntu 16.04+" yang itu (sejak 16.04 sekarang tersedia, yang merupakan poin saya), maka Anda dengan mudah sudo apt-get install python2.7. Ini tidak hanya lebih mudah, itu satu-satunya jawaban yang benar, karena itu satu-satunya cara Anda akan dapat menangani menginstal modul python melalui apt-get dan dependensi mereka secara bergantian. - michael
harap ini membantu mengilustrasikan (tambah jawaban). ekosistem python sangat khusus / rewel, dan Anda dapat dengan mudah masuk ke dalam "neraka ketergantungan" jika Anda tidak hati-hati membangun lingkungan python Anda askubuntu.com/a/831075/17060 - michael


Jawaban:


Pertama, instal beberapa dependensi:

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

Kemudian unduh menggunakan perintah berikut:

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

Ekstrak dan buka direktori:

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

Sekarang, instal menggunakan perintah yang baru saja Anda coba, gunakan checkinstall alih-alih untuk memudahkan mencopot pemasangan jika perlu:

./configure
make
sudo checkinstall

Perubahan version ke versi mana pun yang Anda butuhkan (version=2.7.1 atau version=3.6.0, sebagai contoh).


184
2018-02-05 12:20



Menggunakan sudo make install dan tidak altinstall untuk mengaturnya sebagai versi default python - Shagun Sodhani
menggunakan CXX=g++ ./configure jika ./configure mengeluarkan peringatan yang mengatakan g ++ tidak ditemukan - srj
setelah menginstal seperti yang diinstruksikan di atas, perintah apa yang saya jalankan di konsol untuk memeriksa bahwa memang sudah terpasang? - Ciwan
Ini cukup luar biasa bahwa jawaban terbaik untuk pertanyaan sederhana "cara menginstal Python" akan membawa peringatan yang mengerikan, seperti "ini adalah cara terbaik yang kami tahu untuk menginstal Python dan itu mungkin sangat merusak sistem Anda" ... Ini juga sangat mengejutkan bahwa situs web resmi Python memiliki banyak unduhan dan bukan satu halaman instruksi pemasangan. - patb
tepuk - jawaban terbaik untuk pertanyaan sederhana "cara menginstal python" adalah sudo apt-get install python, jawaban yang lebih rumit adalah "cara menginstal terbaru python ", implikasinya adalah" dari sumber ". Anda akan memiliki masalah yang sama pada OS apa pun kecuali Anda menginstal binari dikompilasi dari pihak ke-3, yang, sekali lagi, berisiko pada OS (dan sangat bervariasi di OS yang berbeda) Juga jawaban ini dari 2012, untuk saran yang lebih baru, lihat askubuntu.com/questions/101591/… - michael


Kecuali Anda benar-benar memiliki hasrat yang membara untuk mengkompilasi sendiri, cara yang lebih disukai adalah menggunakan DeadSnakes PPA untuk menginstal versi Python yang tidak disertakan secara default:

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

Versi lain, seperti python2.4 atau python3.6, dll. juga tersedia.


159
2018-02-05 14:40



Catatan program: Jika Anda menggunakan 10.04, Anda mungkin perlu menginstal properti python-software sebelum menggunakan add-apt-repository. - Craig Maloney
Disarankan untuk membangun python di lingkungan lokal Anda, daripada menginstalnya dari pra-bangun binari - pylover
+1 :) really have a burning desire to compile it yourself - Watt
Merindukan menyebutkan bahwa: 1. the ppa tidak secara resmi didukung, jadi cara yang paling aman adalah membangun dari sumber. 2. ini akan menghasilkan python global, yang bukansudoers tidak dapat memodifikasi atau menginstal paket ke, bukan paket lokal. 3. Beberapa ular sanca dapat dipasang secara lokal di lokasi yang berbeda dengan membangun dari sumber. - Ioannis Filippidis
apt-get install python2.7Ini menginstal python2.7 biner bukan python ... jelek !! - Dhawal


Terus mendokumentasikan ini untuk rilis Ubuntu terbaru1 : untuk server Ubuntu 16.04.1, default Python adalah versi 3.5, dan Python 2.7 adalah tidak terinstal secara default. Pada instalasi baru (perhatikan bahwa tidak ada a python dapat dieksekusi):

$ 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>

Catatan: sebelum melanjutkan, Anda mungkin ingin melakukan cepat sudo apt-get update, sudo apt-get upgrade, dan sudo apt-get dist-upgrade (harap perhatikan apa yang sebenarnya dilakukan oleh perintah ini; saya mengasumsikan instalasi baru di sini.)

Instalasi python 2.7 semudah:

$ sudo apt-get install python2.7

Output awal menginstal python 2.7 adalah sebagai berikut:

$ 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...

Setelah menginstal python 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

Tetapi masih ada masalah, karena Anda belum bisa menginstal modul PyPI melalui pip - mis., jika Anda ingin notebook jupyter, atau scipy atau numpy terbaru (dll.), Anda sebaiknya memasang pip lalu pip install mereka, dan masih berpaling apt-get untuk memasang apa pun yang diperlukan sistem dependensi, seperti graphviz atau pustaka sistem inti.

$ 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

Jadi untuk memasang pip, sekali lagi, itu semudah 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

Anda akan membutuhkan keduanya python-pip untuk Python 2.7 pip dan python3-pip untuk Python 3 pip. Instalasi melalui apt-get pasti menginstal dependensi yang diperlukan; misal, inilah output untuk memasang 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...

Suatu hal yang menarik terjadi sebagai akibat dari ini: Anda sekarang memiliki "standar" (dan PEP disarankan) python2 dan python3 (yang hanya symlink ke python 2.7 dan python 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

Anda juga akan menginginkannya sudo apt-get install python3-pip; sebelum Anda menginstal, Anda memiliki:

$ 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

Setelah menginstal 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...

Versi yang dihasilkan:

$ 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)

Dan satu hal lagi sebelum Anda dapat pergi dan mulai menginstal semua modul python PyPI favorit Anda: Anda mungkin harus mengupgrade pip itu sendiri (baik pip2 dan pip3, secara terpisah; juga, tidak masalah jika pip dipanggil melalui python dapat dieksekusi atau pip dapat dieksekusi, upgrade aktual disimpan /usr/lib):

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

Anda sekarang dapat menjalankan yang berdiri sendiri pip atau versi yang dibundel di dalamnya python (melalui python -m pip {command}).


[1] Rekap sejarah: Ubuntu yang lebih tua hanya memiliki Python 2.6, sehingga semua berbagai metode untuk mendapatkan Python 2.7+ diinstal. Kemudian, setelah Python 2.7 ditambahkan ke repositori publik, kami masih memiliki tantangan yang sama untuk menginstal Python 2.7 terbaru dengan perbaikan terbaru, yang (terlalu) sering diperlukan. Situasi saat ini jauh lebih baik / sederhana: Python 2.7 & 3.5 saat ini (pada dasarnya hanya ada dua versi platform Python yang orang-orang pedulikan) yang sekarang ada di repositori publik sangat stabil, jadi sekarang kita benar-benar hanya perlu khawatir tentang menginstal terbaru python modul, bukan yang terbaru python. Jadi sekarang "masalah versi terbaru" Python telah pindah sebagian keluar dari repositori OS & apt dan ke PyPI & pip.)


24
2017-09-29 08:50



Mengikuti petunjuk ini pada Ubuntu 16.04.1 LTS berhasil mengatur python 2.7 dan pip seperti ini: sudo apt-get install python2.7; sudo apt-get install python-pip; sudo -H python2 -m pip install --upgrade pip; # Memeriksa versi: $ pip --version -> pip 9.0.1 dari /usr/local/lib/python2.7/dist-packages (python 2.7); $ python --version -> Python 2.7.12 - Robert Lujo
Jawaban yang sangat membantu - terima kasih banyak! - Failed Scientist
Maafkan ketidaktahuan saya, tetapi mungkin saya tahu apa arti "hash" saat menampilkan versi Python? - Failed Scientist
@TalhaIrfan Ini pertanyaan yang bagus (dan, jika Anda mengizinkan jawaban yang disederhanakan): ketika perintah diketik dalam bash (seperti w / kebanyakan cangkang), cmd bisa berupa alias, fungsi, atau file yang dapat dieksekusi yang ditemukan di $PATH. The env var PATH adalah daftar panjang direktori dengan ribuan file di dalamnya. Untuk mempercepat menemukan executable, shell menggunakan hashtable cache untuk pencarian cepat. Ini bisa menjadi basi, jadi "hash" memungkinkan Anda mengetahui bahwa "diingat" perintah ini dipetakan ke file yang dapat dijalankan itu unix.stackexchange.com/questions/5609/… - michael
@gaia, Anda mungkin ingin mengajukan pertanyaan terpisah, karena lebih banyak hal-hal yang perlu dilakukan untuk mengetahuinya (atau jika ada yang berubah sejak saya menulis ini). Mungkin, pertama verifikasi itu kedua  pip (2,7) & pip3 (3.x) sepenuhnya dipasang / ditingkatkan, dan bukan hanya yang pertama - yaitu, sudo apt-get install python-pip python3-pip dan sudo -H python2 -m pip install --upgrade pip dan sudo -H python3 -m pip install --upgrade pip  ... Atau jika itu benar-benar masalah izin (ditunjukkan oleh "berfungsi dengan sudo"), maka itu akan menjadi sedikit lebih sulit untuk dilacak. - michael


12.04

Jika Anda mengikuti Jawaban Achu, lalu istilahnya libread5-dev harus diubah menjadi libreadline-gplv2-dev. Jadi perintah penuhnya adalah:

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





Anda juga dapat mengunduh dan menginstalnya melalui 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



Ini adalah cara paling bersih untuk mendapatkan versi Python yang benar-benar terbaru pada versi Ubuntu yang lebih lama. Ini termasuk dukungan virtualenv juga, melalui pyenv-virtualenv plugin, sehingga mudah untuk menginstal aplikasi dengan persyaratan modul yang berbeda tanpa bentrokan. - RichVel
Dua peringatan tentang pyenv: (1) hanya bekerja dari shell bash (atau mungkin zsh, tetapi tentu saja bukan dash yang / bin / sh di Ubuntu), dan (2) ia memerlukan shell login (mis. bash --login), yang tidak selalu mudah dicapai mis. dari Ansible. Paling baik untuk penggunaan interaktif, kurang bagus untuk server scripting. - RichVel