Memperbarui Python pada sistem Ubuntu

78

Saya ingin memperbarui pembangunan Python di kotak Linux saya, tetapi satu-satunya cara saya tahu bagaimana melakukannya adalah menghapus versi saat ini dan menginstal yang baru. Sistem saya sudah mutakhir (saya perbarui kemarin). Saya ingin tahu apakah ada cara untuk memperbarui program tertentu dari baris perintah, seperti sudo apt-get update <program-name>. Saya tahu perintah ini tidak ada, tetapi saya berharap sesuatu yang setara tidak.

efisiensiBliss
sumber
Jika sistem Anda mutakhir, begitu juga Python di sistem Anda (sesuai dengan repositori Anda). Apakah aku salah?
cYrus

Jawaban:

64

Seperti yang sudah dicatat, telanjang sudo apt-get install packageakan menginstal versi terbaru yang tersedia, menggantikan yang lama jika diperlukan.

Tetapi dengan beberapa perangkat lunak (di antaranya adalah Python) situasinya agak berbeda. Beberapa versi utama, yang sangat dan tidak kompatibel mendapatkan paket mereka sendiri . Misalnya, Python 2.6 , Python 2.7 , Python 3.1 semuanya hidup dalam paket terpisah di Ubuntu.

Yang paling penting adalah kenyataan bahwa salah satu kebijakan Ubuntu adalah menggunakan Python secara ekstensif untuk menulis perangkat lunak pengguna akhir. Jadi pada kenyataannya, sebagian cukup besar dari sistem ini ditulis dengan Python. Saat ini, kode berjalan pada Python 2.6 - jadi versi ini adalah default pada saat instalasi; dan kode tidak akan mudah dijalankan, katakanlah, Python 2.7 - karena ada ketidakcocokan. Untuk beralih sistem ke Python 2.7 perlu dilakukan pekerjaan, yang terdiri dari memperbarui dan menguji ulang semua skrip. Ini tidak dapat dilakukan dengan mudah; artinya, Anda tidak bisa hanya "mengalihkan" sistem Anda ke Python 2.7 dan menghapus versi yang lebih lama.

Tapi. Jika Anda tidak peduli dengan roda gigi mewah sistem Anda dan hanya perlu Python yang lebih baru - tidak ada kendala. Pergi dan sudo apt-get install python3dan kode untuk 3.x Python dengan berani; hanya ingat untuk meluncurkan skrip Anda dengan python3dan menggunakan #!/usr/bin/env python3baris shebang.

ulidtko
sumber
6
Detail besar tentang cara kerja di belakang layar.
efficiencyIsBliss
16
sudo apt-get install python 3.3.3

ini untuk python (3.3.3) untuk versi yang berbeda nomor versi yang sesuai harus digunakan.

Mrinal
sumber
4
Saya pikir ruang antara python dan versi seharusnya tidak ada di sana. sudo apt-get install python3.6bekerja untuk saya, tetapi tidak mempengaruhi Python 3.5 dengan cara apa pun.
GUI Junkie
sudo apt-get install python 3.6.1 > Note, selecting 'libghc-unix-time-dev-0.3.6-1b8cf' for regex '3.6.1' ... Argumen yang terpisah meminta untuk menginstal beberapa paket
Clancy Hood
3
Setelah menginstal nomor versi python saya sama? Apa yang bisa menjadi alasannya?
Ramesh Pareek
Saya menggunakan metode ini, tetapi tidak dapat menemukan di mana ia diinstal (yaitu cara membuka shell 3,7). @RameshPareek ini mungkin masalah Anda juga. tampaknya tidak berada di / usr / bin. python is already the newest version (2.7.12-1~16.04). python set to manually installed.ada ide?
Penggemar nomor satu Bjorks
10
sudo apt-get install python3.6

Ini menginstal python 3 di linux di sepanjang sisi python 2.Untuk mengakses python 3 masuk setelah Anda membuka terminal.

python3
G-Ox7cd
sumber
2
Ini menggandakan jawaban lain dan tidak menambahkan konten baru. Tolong jangan memposting jawaban kecuali Anda benar-benar memiliki sesuatu untuk berkontribusi.
DavidPostill
3
maaf saya hanya ingin menulis perintah untuk mendapatkan yang baru.
G-Ox7cd
6
Jika saya menjalankan itu saya dapatkanE: Unable to locate package python3.6 E: Couldn't find any package by glob 'python3.6' E: Couldn't find any package by regex 'python3.6'
Kajsa
1
sudo add-apt-repository ppa: deadsnakes / ppa -y && sudo apt-get update
ski_squaw
E: Unable to locate package python3.6
Dims
4

Anda dekat dengan memikirkan perintah seperti sudo apt-get update(yang merupakan perintah aktual, tetapi tidak melakukan apa yang Anda inginkan.)

Untuk memutakhirkan Python, dan semua yang telah Anda instal, lakukan saja perintahnya:

sudo apt-get upgrade
Wuffers
sumber
Terima kasih, tetapi saya sudah tahu tentang perintah pembaruan, itulah sebabnya saya memposting fakta bahwa sistem saya sudah mutakhir. Saya berharap menemukan perintah yang dapat ditargetkan untuk aplikasi tertentu.
efficiencyIsBliss
apt tidak akan memperbarui apa pun yang mutakhir, sehingga tidak akan membuat perbedaan; p
Journeyman Geek
OP ingin memperbarui python secara khusus . Memberitahu mereka untuk memperbarui semua paket yang mereka miliki adalah saran yang malas dan buruk.
Przemek D
3

Dari situs saudara kami: https://askubuntu.com/questions/44122/how-to-upgrade-a-single-package-using-apt-get

Masing-masing dari perintah ini memperbarui dengan menginstal, yang seharusnya berfungsi dengan baik dalam banyak kasus, tetapi mungkin bukan apa yang Anda cari dalam kasus tertentu.

Jika Anda hanya ingin memutakhirkan paket tertentu DAN hanya jika sudah diinstal, maka gunakan perintah:

sudo apt-get install --only-upgrade packagename
music2myear
sumber
3

Jika Anda mencari untuk meng-upgrade hanya versi kecil dari paket python seperti 2.7.11+ t0 2.7.12 maka sudo apt-get install python2.7lakukan untuk Anda

Senthil Kumar Vaithiyanathan
sumber
2

pyenv mungkin merupakan opsi yang baik untuk Anda: https://github.com/yyuu/pyenv


Sehubungan dengan jawaban @ ulidtko , alternatif yang mungkin untuk mengganti sistem python sama sekali adalah dengan menggunakan lingkungan yang terisolasi dengan versi python yang Anda inginkan. Ini mirip dengan "lingkungan virtual", tetapi untuk python itu sendiri. Saya telah menggunakan ini di masa lalu untuk proyek-proyek lawas yang berjalan di python 2.6, serta ketika memutakhirkan dari versi warisan dari python ke python3.

bagus sekali
sumber
Saya tidak terbiasa dengan area tersebut, tetapi bisakah Anda menjelaskan bagaimana ini menjawab pertanyaan dan menyelesaikan masalah?
Ben N
1
Sehubungan dengan jawaban @ ulidtko ( superuser.com/a/241903/152143 ), alternatif yang mungkin untuk mengganti sistem python sama sekali adalah dengan menggunakan lingkungan yang terisolasi dengan versi python yang Anda inginkan. Ini mirip dengan "lingkungan virtual", tetapi untuk python itu sendiri. Saya telah menggunakan ini di masa lalu untuk proyek-proyek lawas yang berjalan di python 2.6, serta ketika memutakhirkan dari versi warisan dari python ke python3.
nicefinly
1
apt-get install python

Saya percaya ini harus berhasil. Anda perlu mengubah 'python' agar cocok dengan nama paket yang sesuai di repositori Anda.

sarung tangan mbreed
sumber
1

Seperti kita ketahui bahwa Python hadir dengan versi 3.5. Jadi sangat mudah untuk memperbarui Python 2.7 (yang secara default hadir ke Ubuntu 16.04) ke Python 3.5.

Ikuti Langkah-langkah berikut:

  1. Terminal terbuka.
  2. Menjadi pengguna root dengan menggunakan perintah sudo.
  3. Gunakan kode di bawah ini untuk memperbarui Python 2.7 ke 3.5

    sudo apt-get install python3.5

  4. Anda akan dimintai izin, lalu beri opsi Y.

  5. Tunggu sampai selesai prosesnya.
  6. hapus layar dengan menggunakan perintah clear
  7. Periksa versi python dengan perintah di bawah ini.

    python -versi

Guy Data Besar
sumber
1
Harap gunakan pemformatan yang tepat di masa mendatang dan jauhi pernyataan seperti "Semoga ini bisa membantu Anda." mereka hanyalah kebisingan. Dengan menjawab pertanyaan, diasumsikan, Anda berusaha menjawab pertanyaan dengan sesuatu yang bermanfaat. Anda harus memeriksa jawaban Anda dan memperbaiki kesalahan tata bahasa minor yang tidak saya perbaiki dan memberikan tangkapan layar dari proses tersebut. Saya memperbaiki format untuk Anda kali ini, saya tidak akan melakukannya lagi, saya sangat percaya penulis harus dimintai untuk memperbaiki jawaban dan pertanyaan mereka sendiri.
Ramhound
Dan tidak sesederhana itu, ini tidak memperbarui tautan simbolik dengan benar sehingga Anda berakhir dengan 3.4 dan 3.5 berdampingan. Python2 umumnya berdampingan dengan python3, kami tidak memutakhirkan Python2 ke Python3, kami memigrasi pekerjaan kami.
mckenzm
0

Dalam satu kasus bahwa Anda menjalankan versi LTS, python Anda mungkin tertinggal oleh versi minor, katakanlah 2.7.5 alih-alih 2.7.10.

Satu kemungkinan adalah meningkatkan sistem :

  • set prompt=normaldi/etc/update-manager/release-upgrades
  • tingkatkan sistem
    • pada baris perintah, Anda dapat mengetik sudo do-release-upgradeuntuk membuat manajer pemutakhiran melakukan tugasnya untuk meningkatkan ke versi terbaru (= non-LTS).
    • solusi GUI menggunakan Manajer Pembaruan

Seperti biasa saat meningkatkan, lihat catatan rilis , karena pemutakhiran mungkin merusak sistem Anda dalam beberapa kasus, lihat komentar @ Gino .

serv-inc
sumber
Bung, saya mencoba perubahan Anda dan itu merusak sistem Ubuntu 14.04 saya! Pada dasarnya, ia mencoba memperbarui dari 14,04 ke Ubuntu 15 dan tidak berhasil, meninggalkan sistem saya dalam keadaan setengah jalan di mana login grafis tidak lagi berfungsi - misalnya saya akan login melalui login grafis dan itu akan menendang saya kembali ke login grafis yang sama. Hanya menghabiskan waktu satu jam terakhir + menginstal ulang Ubuntu 14.04 ke mesin saya untuk memperbaiki kerusakan solusi yang Anda akui .
Gino
@Gino: Terima kasih atas umpan baliknya. Sudahkah Anda melihat askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… dan catatan rilis? Ada masalah dengan "driver fglrx AMD". Apakah Anda membutuhkan bantuan lain?
serv-inc
Saya pikir saran Anda, untuk menghindari pemeriksaan keamanan normal, sehingga memungkinkan peningkatan ke versi non-LTS penuh dengan bahaya. Hingga hari ini, saya tidak tahu mengapa pemutakhiran gagal, karena tidak menunjukkan pesan kesalahan yang dapat didiagnosis. Sebaliknya, saya berakhir dengan sistem yang tidak lagi dapat digunakan. Jika saya ingat dengan benar, saya akhirnya menjalankan kembali instalasi Ubuntu dengan pengaturan tertentu yang dapat memulihkan sebagian besar sistem saya. Dan, sebagai catatan, saya seorang programmer profesional, jadi saya biasanya tahu jalan saya di sekitar sistem linux.
Gino
@Gino: Ini tampaknya menjadi prosedur standar untuk beralih dari LTS ke non-LTS. Ini [mengubah] tingkat kesadaran rilis baru. Seseorang dapat mengatur ini untuk rilis "didukung" (reguler), "rilis jangka panjang" (LTS), atau bahkan "tidak ada" (tidak ada peningkatan besar). "'Untuk kutipan, lihat askubuntu.com/questions/240160/… . Ini menggunakan manajer pemutakhiran sistem. Sayangnya, dalam kasus Anda, pemutakhiran (default) tidak berfungsi, yang mungkin disebabkan oleh driver grafis yang buggy (lihat tautan di atas)
serv-inc