Pertanyaan Mengapa python 3 bukan default python binary?


saya mengetik python di jendela terminal. Saya mendapatkan Python 2.7 dan bukan Python 3.5. Menurut dokumentasi, Python 3.5 harus sudah dimuat.


39
2018-05-25 01:01


asal


Jika Anda mengatur lingkungan virtual menggunakan: "python3 -m venv my-venv", maka dari terminal mana pun mengaktifkan lingkungan virtual itu dengan memanggil "source ... / my-env / bin / activate", maka python 3.5 akan menjadi default di terminal itu. Anda dapat memeriksa versi default saat ini dengan memanggil "python -V". - Craig Hicks
sementara jawaban Anda membantu, saya bertanya mengapa. bukan bagaimana caranya. dan, itulah debat besar. sini. mengapa harus versi yang lebih lama dengan default, bukan versi saat ini. - givonz
Anda benar tentang "komentar" saya! Itulah mengapa saya menulis komentar dan bukan jawaban. - Craig Hicks


Jawaban:


Saya tidak tahu apa "dokumen" yang Anda baca atau apa yang mereka katakan, tetapi /usr/bin/python hanyalah tautan simbolis ke versi default python, dalam hal ini 2.7, yang merupakan hasil dari hanya mengetik python di terminal. Ini adalah hasil dari PEP 394 yang mendefinisikan itu

  • untuk saat ini, semua distribusi harus memastikan itu python mengacu pada target yang sama python2.

type python dan file /usr/bin/python akan mengkonfirmasi ini.

Alasan untuk pengaturan ini selain dari konvensi, adalah bahwa paket sumber python-default di Xenial adalah versi 2.7.11, jadi tautan simbolik simbolis menunjuk ke versi ini.

Untuk menggunakan python 3 Anda harus eksplisit dan mengetik python3 di baris perintah, yang disarankan jika Anda memerlukan versi tertentu, ini juga dapat dilakukan dengan python 2, mengetik python2. Ubuntu menyertakan versi python 2 dan 3 secara default di semua versi saat ini.

Ada berencana memigrasikan semuanya ke python 3 dan menandainya sebagai default.


54
2018-05-25 02:03



Ini mungkin melanggar plugin rhythmbox-zeitgeist yang bergantung pada zeitgeiigeist-python3 tetapi tidak dapat menemukannya. - Khurshid Alam
Ini dokternya yang berarti OP. - SaidbakR


Untuk mendapatkan Python 3.5 REPL atau menjalankan skrip yang kompatibel, ketik python3. Ini untuk menjaga kompatibilitas dengan semua python legacy 2.x (yang selalu ada, dan akan tetap terhubung python).

Dasbor bisa menemukan python jika Anda mengatur a .desktop file untuk itu (dalam ~/.local/share/applications/), untuk membuka terminal dan memulai REPL misalnya. Tidak ada lingkungan GUI REPL default untuk python, dan harapan antarmuka normal adalah bahwa pengguna akan pergi ke terminal.

Pembicaraan python 3.5 menjadi default adalah maintainer porting semua skrip sistem dari python 2.x ke python 3.x, bukan python 3 akan menggantikan python 2 dalam semua kasus.


10
2018-05-25 01:16



jadi, saya kira pertanyaan yang benar adalah, bagaimana cara menambahkan python3 ke jalan saya, sehingga itu dijalankan secara otomatis? - givonz
maksud Anda, bagaimana Anda mendapatkan skrip python untuk dijalankan seperti program yang dikompilasi? - Andrew Keech
terima kasih. cukup ketik python3 pada prompt perintah. - givonz
AIUI apa yang harus dilakukan dengan / usr / bin / python dalam jangka panjang masih merupakan pertanyaan terbuka. Praktik terbaik untuk skrip python2 adalah dengan menggunakan python2 secara eksplisit. - Peter Green
daripada menggunakan #!/usr/bin/python3 (atau #!/usr/bin/python2) dalam skrip, lebih baik digunakan (hanya untuk python, khususnya) #!/usr/bin/env python3 jika Anda ingin jarak jauh portabel. Untuk sebagian besar, ini hanya dokumentasi, karena dalam banyak kasus akan disebut digunakan $ python3 your_pyprogram.py bagaimanapun. - michael


Versi Python 2.x, 3.x tersedia. jika Anda memanggil python karena ia menunjuk ke python 2.x maka akan memuat python 2.x

Gambar di bawah ini akan membantu Anda.

enter image description here


3
2018-05-25 01:18



bagaimana Anda mengetikkan perintah yang sama dan mendapatkan 2 hasil yang berbeda? - givonz
output yang berbeda dari doa kedua python adalah dari menggunakan <tab> untuk menanyakan autocompleter, yang kemudian menampilkan kemungkinan permutasi python* dan mengembalikan Anda ke prompt baru. - Andrew Keech
@ givonz, hmm Saya menggunakan TAB key bro. bukan outputnya. itu mungkin pola biner. - Ten-Coin
Suara negatif untuk apa? - Ten-Coin
Saya tidak downvote tapi saya pikir jawabannya harus menjelaskan mengapa 2 output pertama berbeda dan apa perannya apt-cache, terutama untuk pemula Ubuntu. - A.L


Anda berasumsi bahwa Python default harus tersedia sebagai python. Anggapan itu salah.

Pada sistem yang datang dengan Python 3 "preloaded" dan tidak ada Python 2 sama sekali, hanya akan ada python3 dan tidak python.

Kode yang ditulis untuk Python 3 harus selalu mencari interpreter yang dipanggil python3. Kode yang ditulis untuk Python 2 secara historis akan dicari python.

Mungkin ada titik waktu, mungkin beberapa dekade dari sekarang, di mana hampir tidak ada yang ingat Python 2, kapan python mungkin mulai merujuk python3. Ini murni untuk kenyamanan, dan bisa dan tidak boleh dilakukan prematur, jika sama sekali! Tidak ada tergesa-gesa, karena dampak berikut:

Sistem "lama" tidak akan memiliki pengetahuan python2, saja python, sehingga masuk akal untuk menjaga kode Python 2 mencari python. Inilah alasannya python harus merujuk ke Python 2 untuk "selama kode Python 2 ada".

Kode baru ditulis untuk Python 2, jika itu masuk akal, dapat dengan sempurna mencari python. Mungkin juga mencari python2, jika dimaksudkan untuk berjalan hanya pada sistem Python 3 sadar dan terawat (yang harus menawarkan link tersebut).

Manfaat kode Python 2 menggunakan python2 akan bahwa itu tidak membutuhkan sentuhan ekstra sekali python mulai mengacu pada python3, yang mungkin tidak pernah terjadi, atau sekali python menghilang sama sekali, yang mungkin atau tidak mungkin terjadi. (Itu mungkin menjadi kenyataan, jika kode Python 2 mati setelah Python 4 hipotetis menjadi populer dengan interpreternya python4. - Karena membiarkannya menunjuk juga python3 atau python4 akan membingungkan keduanya.)


3
2017-07-11 14:28





Python 3.x harus bekerja dengan 16.04 - Sebenarnya, ini pasti AKAN bekerja. Saya memiliki Ubuntu 14.04 dan saya memiliki Python 3.4.3 - Yang harus Anda lakukan untuk mengujinya adalah ketik python3 dan seharusnya memberi tahu Anda versi apa yang Anda jalankan.


2
2018-05-25 01:24



Yah aku tidak akan menyebut menggunakan ilmu komputer OS. Dan tegasnya: Ubuntu adalah OS berbasis Linux dan bukan berbasis Unix. - magu_
saya belum memahami diff bet linux & unix selain beberapa perintah perintah & berbeda, tetapi perintah yang diberi kata-kata lebih dekat. meskipun gui jauh lebih maju dari apa yang saya lihat di solaris. - givonz
-1 Ini tidak menjawab pertanyaan Mengapa. - David Foerster