Bagaimana cara menginstal Python 3.6 menggunakan apt-get?

363

Saya sudah mencoba cara normal sudo apt-get install python3.6, tapi ... yah ... itu tidak berhasil.

Jadi, bagaimana saya melakukannya? (Saya lebih suka tidak membangunnya sendiri)

Saya menggunakan Ubuntu 16.04.

Olian04
sumber
5
Mungkin python 3.6 tidak tersedia untuk distribusi Anda. Jika Anda telah menginstal aptitude, jalankanaptitude search python3
ridgy

Jawaban:

525

Ubuntu 14.04 (Terpercaya), 16,04 (Xenial)

Jika Anda menggunakan Ubuntu 14.04 atau 16.04, Anda dapat menggunakan PPA deadsnakes Felix Krull di https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa :

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6

Atau, Anda dapat menggunakan PPA J Fernyhough di https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6 :

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6

Ubuntu 16.10, 17.04

Jika Anda menggunakan Ubuntu 16.10 atau 17.04, maka Python 3.6 ada di repositori universe, jadi Anda bisa menjalankannya:

sudo apt-get update
sudo apt-get install python3.6

Setelah instalasi untuk Ubuntu 14.04, 16.04, 16.10 dan 17.04

Untuk memanggil juru bahasa Python 3.6, jalankan python3.6.

Ubuntu 17.10 dan 18.04 (Bionic)

Ubuntu 17.10 dan 18.04 sudah datang dengan Python 3.6 sebagai default. Lari python3untuk memintanya.

edwinksl
sumber
5
Perhatikan bahwa python3.6 di Ubuntu 16.10 adalah versi beta yang memiliki beberapa masalah (seperti kebocoran memori yang sangat menyakitkan dictyang muncul dalam beberapa keadaan langka).
Marius Gedminas
102
HATI - HATI - Jangan dalam kondisi apa pun tergoda untuk berlarisudo apt remove python3.5atau yang seperti itu; Python secara fundamental dimasukkan ke dalam Ubuntu daripada yang Anda bayangkan, dan Anda dapat memecah instalasi Ubuntu Anda. Jika Anda inginpython3memetakanpython3.6, buat symlink saja!
Huw Walters
19
Saya melihat tidak ada python3.6-pippaket, dan saya biasa curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6menginstalnya pip.
Acumenus
5
Entah bagaimana python dari ppa:jonathonf/python-3.6tiba dengan pip rusak dan tidak ada easy_install pada 14,04. Namun, saya sudah berhasil memperbaikinya dengan menginstal easy_install dan kemudian menginstal ulang pip via curl https://bootstrap.pypa.io/ez_setup.py -o - | python3.6 && python3.6 -m easy_install pipHanya dalam kasus seseorang mengalami masalah yang sama ...
FirefoxMetzger
6
Seperti beberapa komentator lain di atas, saya juga kesulitan pipmenginstal ppa:jonathonf/python-3.6. Di sisi lain, ppa:deadsnakes/ppabekerja dengan sempurna ( apt-get install python3.6 python3.6-venv -y).
Michael Herrmann
133

Saya akan merekomendasikan pyenv untuk mengatasi kesengsaraan Anda. Itu tidak menggunakan Aptitude, dan memang melibatkan "membangunnya sendiri", tetapi sepenuhnya otomatis . Anda dapat membangun dan menginstal versi Python baru (atau lama) hanya dengan mengatakan pyenv install 3.6.0. Semuanya berjalan sebagai pengguna Anda, jadi Anda tidak perlu khawatir mengacaukan Python yang digunakan oleh Ubuntu itu sendiri.

Plus, jawaban untuk pertanyaan tindak lanjut "Bagaimana cara saya menginstal Python 3.7 menggunakan apt-get?" memiliki jawaban yang sama: pyenv update; pyenv install 3.7.0. Ini umumnya akan bekerja pada hari rilis yang sama karena Anda tidak perlu menunggu orang lain untuk mengemasnya untuk Ubuntu. Lihat semua versi yang dapat Anda instalpyenv install --list

Instal pyenv

  1. Instal alat dan tajuk yang diperlukan untuk membuat CPythons (Python eksotis seperti PyPy atau Jython mungkin memiliki dependensi lain). Git digunakan oleh pyenv, plus itu juga memungkinkan build / install cabang sumber, sehingga Anda dapat menginstal apa pun yang 3.8 sekarang, yaitu cabang master dari CPython yang baru lepas dari GitHub:

    sudo apt-get install -y git
    sudo 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 (instal pyenv dan beberapa plugin pyenv yang sangat berguna oleh penulis asli; lihat di sini untuk informasi lebih lanjut)

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

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
  4. Mulai ulang shell Anda (tutup & buka atau exec $SHELL) atau muat ulang skrip profil. (dengan misalnya 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 pipmenginstal!

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

    pyenv install 3.6.0
  2. Jadikan virtualenv sehingga Anda bisa membuat orang lain nanti jika mau

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

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

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

Penyelesaian masalah

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

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

    1. Jika Anda tidak menggunakan skrip penginstal, Anda kemungkinan hanya menginstal paket root pyenv. Lihat pyenv-virtualenv untuk instruksi menambahkan plugin
    2. Jika Anda menggunakan skrip penginstal, periksa apakah skripnya muncul pyenv commands.
Nick T
sumber
1
Ada satu peringatan, ketika menggunakan pyenv dengan Python 2.x (atau rilis 3.x yang sangat lama sebelum representasi internal string Unicode baru terjadi): pyenv menggunakan flag-flag kompilasi hulu default dan dibuat dengan string Unicode 16-bit. Distro Linux umumnya dibuat dengan string Unicode 32-bit. Hal ini menyebabkan rasa sakit ketika Anda memasang beberapa barang ke Pyenv dan Python non-pyenv, karena caching roda pip.
Marius Gedminas
@marius mengapa Anda pernah menggunakan versi non-pyenv setelah menginstalnya?
Nick T
3
Saya tidak tahu, tetapi saya menemukan masalah ini dengan membantu seseorang di IRC men-debug masalah di mana paket Python tertentu (lxml?) Gagal berfungsi karena ini. Jadi itu terjadi dalam praktik, bagi sebagian orang, dan patut diketahui. (Solusinya adalah rm -r ~/.cache/pip/wheels/.)
Marius Gedminas
1
Apakah pyenvperlu diinstal untuk setiap pengguna yang membutuhkan Python? Dan jika saya memiliki 3 pengguna yang membutuhkan versi Python 3.6 yang sama, maka ia harus mengkompilasinya 3 kali dan akan membutuhkan ruang disk 3x? Jika itu benar maka itu menyebalkan ...: /
Sarge Borsch
1
@SargeBorsch secara default (jika Anda menggunakan pyenv-installer) ini adalah instal pengguna, tetapi tidak ada yang mencegah Anda menginstalnya /optatau apa pun dan menambahkan beberapa symlink ke /bin. Saya merasa menjadi pengguna saja sangat berguna; pengguna tidak perlu sudo (selain lib). Ruang disk murah.
Nick T
14

Tergantung pada versi Ubuntu yang Anda gunakan.

Ubuntu 16.10 dan Ubuntu 17.04

Karena Python 3.6 diinstal di repositori semesta dari Ubuntu 16.10 dan Ubuntu 17.04, Anda dapat langsung menginstal python 3.6 dari repositori. Cukup gunakan perintah di bawah ini:

sudo apt update
sudo apt install python3.6

Ubuntu 16.04

Ada dua cara untuk menginstal Python3.6 di Ubuntu 16.04

  • Kompilasi dan instal python 3.6 pada Ubuntu 16.04
  • Instal python 3.6 di Ubuntu 16.04 dari PPA

1. Kompilasi dan instal python 3.6 pada Ubuntu 16.04

Instal dependensi yang diperlukan, unduh kode sumber python 3.6, dan bangun lingkungan dan instal

sudo apt install build-essential checkinstall
sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
tar xvf Python-3.6.0.tar.xz
cd Python-3.6.0/
./configure
sudo make altinstall

2. Instal python 3.6 pada Ubuntu 16.04 dari PPA

Anda dapat menginstal Python 3.6 dari PPA menggunakan perintah di bawah ini

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt update
sudo apt install python3.6

Jika Python 3.6 diinstal dengan benar, Anda dapat memanggil juru bahasa python dengan menjalankan python3.6di terminal.

Saya harap ini membantu. Jika Anda memiliki masalah, Anda dapat memeriksa posting blog ini di sini .

Aryal Bibek
sumber
2
Ini pada dasarnya adalah salinan dari jawaban yang diterima. Di mana nilai tambah dari jawaban Anda?
Marc Vanhoomissen
2
Langkah pertama dalam Ubuntu 16.04 adalah bagi mereka yang ingin mengkompilasi dan menginstal python 3.6 karena suatu alasan. Proses kompilasi dan instal Python 3.6 di Ubuntu 16.04 tidak tersedia dalam jawaban yang diterima atau jawaban apa pun di utas dalam hal ini. Poin lainnya adalah memperjelas versi Ubuntu dan perbedaannya dari jawaban yang diterima lainnya.
Aryal Bibek
1
Pemasangan PPA pada 16,04 (Mint) tampak rusak. Instalasi dari info sumber berguna.
landak gila
13

Rute alternatif jika Anda tidak dapat menemukan repo yang berfungsi adalah Anda dapat mencoba mengkompilasi diri Anda dari sumber. Anda dapat menemukan kode sumber di halaman unduhan . Kemudian unduh dan undar tarball; misalnya untuk Python-3.6.1.tgz.

Proses untuk menghapus file tgz adalah:

tar -xvzf /path/to/yourfile.tgz

Setelah Anda berada di jalur file, file itu membuka ritsleting, jalankan:

./configure
make
make altinstall

Dan semoga ini bisa menyelesaikan masalah untuk Anda.

Just In Time Berlake
sumber
4
Pertanyaan mengatakan (id preferably not build it on my own). Mungkin akan lebih baik untuk pergi aptrute jika memungkinkan.
TheWanderer
Ok, saya akan melihat-lihat apakah saya dapat menemukan repositori alternatif untuk Anda. Apakah Anda berkesempatan untuk melihat sendiri di Google untuk repo alternatif sendiri? Saya tidak ingin menyarankan hal-hal yang sudah Anda coba.
Just In Time Berlake
Saya bukan OP. Hanya membuat saran. Saya tidak dapat menemukan PPA untuk 3,6, jadi membangun mungkin rute yang diperlukan. Anda mungkin harus mengatasinya dalam jawaban Anda.
TheWanderer
Perintah make Anda akan gagal pada sistem yang pengguna tidak pernah membangun apa pun, karena ada banyak paket yang diperlukan. "sudo apt install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev"
Joe
4

Untuk Ubuntu 15.10 saya berhasil menginstalnya menggunakan metode ini:

sudo add-apt-repository ppa:jonathonf/python-3.6

Tapi saya mengedit file ini:

sudo vi /etc/apt/sources.list.d/jonathonf-ubuntu-python-3_6-wily.list

Dan saya berubah dengan cerdik menjadi percaya dan kemudian:

sudo apt-get update
sudo apt-get install python3.6
hassan ketabi
sumber
12
Ubuntu 15.10? Sudah EOL bulan lalu. Saatnya untuk meningkatkan.
edwinksl
0

Pertama, ikuti beberapa jawaban lain untuk menginstal Python 3.6 atau 3.7. Kemudian, jika ingin menginstal paket PyPi seperti OpenEXR melalui pipAnda mungkin mendapatkan beberapa kesalahan. Beberapa di antaranya (mis. Untuk paket PyPi OpenEXR) mungkin dapat diatasi dengan menginstal paket pengembangan Python untuk Python yang baru Anda instal. Ini dapat dilakukan dengan menggunakan sebagai berikut:

sudo apt-get install python3.6-dev

atau

sudo apt-get install python3.7-dev

Amir
sumber
0

Mungkin menyarankan Conda bukanlah ide yang buruk. Saya pikir itu setidaknya lebih mudah daripada menggunakan pyenv. Tapi mungkin itu tergantung pada apa yang ingin Anda lakukan dengan Python, karena saya pikir dengan Conda Anda mungkin berakhir dengan beberapa paket tambahan.

EDIT : Mungkin perlu disebutkan bahwa setelah Anda menginstal versi Python dari Conda, Anda dapat menginstal versi yang Anda butuhkan, di sini 3.6, menggunakan condalike

conda install python==3.6
arsaKasra
sumber