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

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

Apakah ini adalah cara yang benar untuk menginstal?

./configuremakemake install

Jika tidak, bagaimana saya melakukannya?

Pertama, instal beberapa dependensi:

sudo apt-get install build-essential checkinstallsudo 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.13cd ~/Downloads/wget https://www.python.org/ftp/python/$version/Python-$version.tgz

Ekstrak dan pergi ke direktori:

tar -xvf Python-$version.tgzcd Python-$version

Sekarang, instal menggunakan perintah yang baru saja anda coba, gunakan checkinstall sebaliknya untuk membuatnya lebih mudah untuk uninstall jika diperlukan:

./configuremakesudo checkinstall

Perubahan version untuk versi mana yang Anda butuhkan (version=2.7.1 atau version=3.6.0, misalnya).

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

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

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

Melanjutkan mendokumentasikan ini untuk rilis Ubuntu terbaru1 : untuk Ubuntu 16.04.1 server, Python default adalah versi 3.5, dan Python 2.7 adalah tidak diinstal secara default. Pada instalasi baru (perhatikan bahwa bahkan tidak ada python executable):

$ 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 * python3Try: 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 dengan tepat apa yang sebenarnya dilakukan oleh perintah-perintah ini; saya mengasumsikan instalasi baru di sini.)

Menginstal python 2.7 semudah:

$ sudo apt-get install python2.7

Output awal menginstal python 2.7 adalah sebagai berikut:

$ sudo apt-get install python2.7Reading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  libpython2.7-minimal libpython2.7-stdlib python2.7-minimalSuggested packages:  python2.7-doc binutils binfmt-supportThe following NEW packages will be installed:  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal0 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 pythonpython3 is /usr/bin/python3python2.7 is /usr/bin/python2.7python3.5 is /usr/bin/python3.5bash: type: python2: not foundbash: type: python: not found

Tetapi masih ada masalah, karena Anda belum dapat menginstal modul PyPI melalui pip -- misalnya, jika Anda ingin jupyter notebook, atau scipy atau numpy (dll) terbaru, Anda ingin menginstal pip dan kemudian pip install mereka, dan masih beralih ke apt-get untuk menginstal diperlukan sistem dependensi, seperti graphviz atau pustaka sistem inti.

$ type pip3 pip2 pipbash: type: pip3: not foundbash: type: pip2: not foundbash: type: pip: not found$ python3 -m pip --version /usr/bin/python3: No module named pip

Jadi untuk menginstal 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 installerpython-pip-whl - alternative Python package installerpython3-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 untuk menginstal dependensi yang diperlukan; misalnya, inilah output untuk menginstal pip2:

$ sudo apt-get install python-pipReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe 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-devSuggested 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-docThe 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-dev0 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 direkomendasikan) 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/python3python2 is /usr/bin/python2python is /usr/bin/pythonpython2.7 is /usr/bin/python2.7python3.5 is /usr/bin/python3.5

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

$ type pip pip2 pip3pip is /usr/bin/pippip2 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-pipReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following additional packages will be installed:  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-devSuggested packages:  python-setuptools-docThe following NEW packages will be installed:  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev0 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 pip3python is /usr/bin/pythonpython2 is hashed (/usr/bin/python2)python3 is hashed (/usr/bin/python3)pip is /usr/bin/pippip2 is /usr/bin/pip2pip3 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 PyPI python favorit Anda: Anda mungkin harus meningkatkan pip itu sendiri (baik pip2 dan pip3, secara terpisah; juga, tidak masalah jika pip dipanggil melalui python executable atau pip executable, upgrade yang sebenarnya disimpan dalam /usr/lib):

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

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


[1] Rekap sejarah: Ubuntu yang lebih lama hanya memiliki Python 2.6, sehingga semua berbagai metode untuk menginstal Python 2.7+. 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 / lebih sederhana: Python 2.7 & 3.5 saat ini (pada dasarnya hanya dua versi platform Python yang dipedulikan orang) yang sekarang ada di repo publik sangat stabil, jadi sekarang kita benar-benar hanya perlu khawatir tentang menginstal python terbaru modul, bukan yang terbaru python. Jadi sekarang Python "masalah versi terbaru" telah pindah sebagian keluar dari repo OS & amp; apt dan ke PyPI & pip.)

12.04

Jika Anda mengikuti Jawaban Achu, kemudian istilah libread5-dev harus diubah menjadi libreadline-gplv2-dev. Jadi perintah penuh akan:

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

Anda juga dapat mengunduh dan menginstalnya melalui pyenv

#Install Pyenvgit clone https://github.com/pyenv/pyenv.git ~/.pyenvexport PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATHecho 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profileecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profileecho 'eval "$(pyenv init -)"' >> ~/.bash_profile#Install Pythonpyenv install 2.7.8pyenv global 2.7.8pyenv install 3.4.5pyenv global 3.4.5

Sebagian besar cermin dari jawaban ini dengan intro tweak

Saya akan merekomendasikan pyenv. Ini mengotomatiskan proses pembuatan selain menginstal dependensi header (lihat di bawah). Anda dapat membangun dan menginstal versi Python baru (atau lama) hanya dengan mengatakan pyenv install 3.6.0. Semuanya berjalan sebagai pengguna Anda, sehingga Anda tidak perlu khawatir tentang mengacaukan Python digunakan oleh Ubuntu sendiri.

Berbeda dengan beberapa opsi berbasis apt-repo (misalnya deadsnakes), umumnya akan bekerja pada hari yang sama dengan rilis setelah pyenv update karena Anda tidak perlu menunggu orang lain mengemasnya. Lihat semua versi yang dapat Anda instal pyenv install --list

Instal pyenv

  1. Instal alat dan header yang diperlukan untuk membangun CPythons (ular eksotis seperti PyPy atau Jython mungkin memiliki dependensi lain). Git digunakan oleh pyenv, ditambah lagi juga memungkinkan pembuatan / pemasangan cabang sumber, sehingga anda dapat menginstal 3.8 apa pun saat ini, yaitu cabang master CPython baru dari GitHub:

    sudo apt-get install -y gitsudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \                        libffi-dev libsqlite3-dev tk-dev# optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)sudo apt-get install -y libpng-dev libfreetype6-dev    
  2. Jalankan skrip penginstal (menginstal pyenv dan beberapa plugin pyenv yang sangat berguna oleh penulis asli; lihat di sini untuk lebih)

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  3. Tambahkan baris init ke ~/.profile atau ~/.bashrc (ini menyebutkannya di akhir skrip instalasi):

    export PATH="~/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"
  4. Restart shell Anda (tutup & amp; Buka atau exec $SHELL) atau muat ulang skrip profil. (dengan Mis. source ~/.bashrc)

Selesai!

Menyiapkan lingkungan

Untuk tidak menyentuh sistem Python (umumnya ide yang buruk; layanan tingkat OS mungkin mengandalkan beberapa versi perpustakaan tertentu, dll.) buat lingkungan Anda sendiri, mudah! Bahkan lebih baik, tidak sudo, untuk itu atau pip menginstal!

  1. Instal versi Python pilihan Anda (ini akan mengunduh sumber dan membuatnya untuk pengguna Anda, tidak diperlukan input)

    pyenv install 3.6.0
  2. Buatlah virtualenv sehingga Anda dapat membuat orang lain nanti jika Anda ingin

    pyenv virtualenv 3.6.0 general
  3. Jadikan aktif secara global (untuk pengguna Anda)

    pyenv global general
  4. Lakukan apa yang Anda inginkan dengan Python/pip, dll. Ini milikmu.

Jika Anda ingin membersihkan perpustakaan Anda nanti, Anda dapat menghapus virtualenv (pyenv uninstall general) atau membuat yang baru (pyenv virtualenv 3.6.0 other_proj). Anda juga dapat memiliki lingkungan aktif per-direktori: pyenv local other_proj akan menjatuhkan .python-version file ke folder Anda saat ini dan setiap kali Anda memanggil Python atau pip-instal utilitas Python dari itu atau di bawahnya, mereka akan shimmed oleh pyenv.

Pemecahan masalah

  • bash: pyenv: command not found, fish: Unknown command 'pyenv'

    1. Periksa Anda $PATH, harus ada satu entri yang diakhiri dengan sesuatu seperti .pyenv/bin. Jika hilang pastikan Anda mengikuti # 3 Dan # 4 (restart shell Anda) di bawah Install pyenv di atas.
  • pyenv: no such command 'virtualenv'

    1. Jika Anda tidak menggunakan skrip penginstal, kemungkinan besar Anda hanya menginstal paket root pyenv. Lihat pyenv-virtualenv untuk petunjuk untuk menambahkan plugin
    2. Jika Anda menggunakan skrip penginstal, periksa apakah itu muncul dengan pyenv commands.

Pada suatu waktu, saya membayangkan ini diminta untuk menginstal versi newer python di Ubuntu. Sekarang, diperlukan untuk menginstal versi older python di Ubuntu (karena kami still memerlukan python 2.7 untuk banyak hal)… tl; dr: jawaban ini tidak lagi terkini/benar. Sebagai gantinya, dengan asumsi python3 diinstal secara default (dan mungkin python2 minimal.X), lalu jalankan: sudo apt-get install python-2.7 python-pip

@ jargonjunkie Anda di luar topik, tapi benar. Jika pertanyaannya adalah _ " bagaimana cara menginstal python 2.7 di ubuntu 16.04+"_ yang mana (karena 16.04 sekarang tersedia, yang merupakan poin saya), maka anda cukup sudo apt-get install python2.7. Ini tidak hanya lebih mudah, ini adalah satu-satunya jawaban yang benar, karena ini adalah satu-satunya cara Anda dapat menangani pemasangan modul python melalui apt-get dan dependensinya secara bergantian.

@ michael_n apa yang kamu bicarakan? kompilasi dari sumber tidak membuat jawaban ini salah atau ketinggalan jaman. ini hanya metode yang berbeda. Anda dapat menggunakan apt untuk mengotomatiskan proses untuk anda jika diperlukan.

u menggunakan apa yang u butuhkan. Saya tidak benar-benar melihat bagaimana ini mendukung klaim Anda bahwa ini sudah ketinggalan zaman. seperti yang Anda katakan sendiri, u menggunakannya ketika Anda perlu karena mungkin tidak tersedia. Misalnya, Windows subsistem untuk linux menggunakan beberapa paket perangkat lunak Tanggal bahkan tho 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 mengkompilasi jika saya ingin paket terbaru

semoga ini membantu mengilustrasikan (jawaban tambahan). ekosistem python sangat khusus / rewel,dan Anda dapat dengan mudah masuk ke “ketergantungan neraka” jika Anda tidak hati-hati membangun lingkungan python Anda software installation - How do I install the latest Python 2.7.X or 3.X on Ubuntu? - Ask Ubuntu

kau benar sekali. Anda dapat dengan mudah mengindeks dependensi dari situs. dan sebenarnya, subsistem menggunakan 14.04.5 dan menggunakan 2.7.2 secara default (bersama w py3 tentu saja). apt-get mungkin tidak selalu menjadi pilihan dan sangat membantu untuk mengetahui bahwa dpkg ada di sana. ini berguna untuk skenario khusus di mana opsi ini mungkin tidak tersedia dan meskipun tidak selalu merupakan pilihan terbaik (jelas, jika Anda dapat menggunakan apt, Anda harus menggunakan apt). Saya memiliki beberapa lingkungan khusus yang tidak mendukung banyak paket debian, jadi saya sering menggunakan dpkg. mengetahui cara menggunakannya dalam keadaan darurat bisa sangat berharga.