Jika Anda mengatur lingkungan virtual menggunakan: "python3 -m venv my-venv", maka dari terminal mana saja aktifkan lingkungan virtual itu dengan memanggil "sumber ... / my-env / bin / aktifkan", 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 sangat membantu, saya bertanya mengapa. bukan bagaimana caranya. dan, itulah debat besar. sini. mengapa versi yang lebih lama secara default, bukan versi saat ini.
givonz
1
Anda benar tentang "komentar" saya! Itulah sebabnya saya menulis komentar dan bukan jawaban.
Craig Hicks
Jawaban:
56
Saya tidak tahu "docs" apa yang Anda baca atau apa yang mereka katakan, tetapi /usr/bin/pythonitu hanyalah tautan simbolis ke versi default python, dalam hal ini 2.7, yang merupakan hasil dari hanya mengetik pythondi terminal. Ini adalah hasil dari PEP 394 yang mendefinisikan itu
untuk saat ini, semua distribusi harus memastikan bahwa pythonmengacu pada target yang sama denganpython2 .
type pythondan file /usr/bin/pythonakan mengkonfirmasi ini.
Alasan untuk pengaturan ini selain dari konvensi, adalah bahwa paket source python-default di Xenial adalah versi 2.7.11 , sehingga tautan simbolik python menunjuk ke versi ini.
Untuk menggunakan python 3 Anda harus eksplisit dan mengetikkan python3baris perintah, yang direkomendasikan jika Anda memerlukan versi tertentu, ini juga bisa dilakukan dengan python 2, mengetik python2. Ubuntu menyertakan versi python 2 dan 3 secara default di semua versi saat ini.
Untuk mendapatkan Python 3.5 REPL atau menjalankan skrip yang kompatibel, ketik python3. Ini untuk menjaga kompatibilitas dengan semua legacy python 2.x (yang selalu, dan akan tetap terhubung dengan python).
Tanda hubung dapat menemukan pythonjika Anda mengatur .desktopfile untuk itu ~/.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 tentang python 3.5 menjadi default adalah pengelola mem-porting semua skrip sistem dari python 2.x ke python 3.x, bukan bahwa python 3 akan menggantikan python 2 dalam semua kasus.
jadi, saya kira pertanyaan yang benar adalah, bagaimana cara menambahkan python3 ke jalur saya, sehingga dijalankan secara otomatis?
givonz
maksud Anda, bagaimana Anda mendapatkan skrip python untuk dieksekusi seperti program yang dikompilasi?
Andrew Keech
Terima kasih, terima kasih. cukup ketik python3 pada prompt perintah.
givonz
2
AIUI apa yang harus dilakukan dengan / usr / bin / python dalam jangka panjang masih merupakan pertanyaan terbuka. Praktik terbaik untuk skrip python2 adalah menggunakan python2 secara eksplisit.
Peter Green
1
daripada menggunakan #!/usr/bin/python3(atau #!/usr/bin/python2) dalam skrip, lebih baik menggunakan (hanya untuk python, khususnya) #!/usr/bin/env python3jika Anda ingin itu menjadi portabel jarak jauh. Untuk sebagian besar, ini hanya dokumentasi, karena dalam banyak kasus itu akan tetap dipanggil menggunakan $ python3 your_pyprogram.py.
michael
4
Anda menganggap bahwa Python default harus tersedia sebagai python. Anggapan itu salah.
Pada sistem yang dilengkapi dengan Python 3 "preloaded" dan tidak ada Python 2 sama sekali, hanya akan ada python3dan tidak ada python.
Kode yang ditulis untuk Python 3 harus selalu mencari penerjemah yang dipanggil python3. Kode yang ditulis untuk Python 2 akan dicari secara historis python.
Mungkin ada saatnya, mungkin beberapa dekade dari sekarang, di mana hampir tidak ada yang mengingat Python 2, ketika pythonmulai merujuk python3. Ini murni untuk kenyamanan, dan bisa dan tidak boleh dilakukan prematur, jika sama sekali! Tidak ada terburu-buru, karena dampak berikut:
Sistem "Saat ini lama" tidak akan memiliki pengetahuan tentang python2, hanya python, jadi sangat masuk akal untuk menjaga kode Python 2 mencari python. Ini adalah alasan mengapa pythonharus merujuk ke Python 2 untuk "selama kode Python 2 ada".
Kode baru yang ditulis untuk Python 2, jika itu masuk akal, dapat dicari dengan sempurna python. Mungkin juga mencari python2, jika dimaksudkan untuk berjalan hanya pada sistem Python 3 sadar dan terawat (yang seharusnya menawarkan tautan tersebut).
Manfaat menggunakan kode Python 2 python2adalah tidak perlu sentuhan ekstra setelah pythonmulai merujuk python3, yang mungkin tidak pernah terjadi, atau sekali pythonhilang sama sekali, yang mungkin atau mungkin tidak terjadi. (Itu mungkin menjadi kenyataan, jika kode Python 2 mati setelah hipotesis Python 4 menjadi populer dengan penerjemahnya python4. - Karena membiarkannya menunjuk ke salah satu python3atau python4keduanya akan membingungkan.)
bagaimana Anda mengetik perintah yang sama dan mendapatkan 2 hasil yang berbeda?
givonz
4
output yang berbeda dari doa kedua pythonadalah dari menggunakan <tab>untuk meminta autocompleter, yang kemudian menampilkan kemungkinan permutasi python*dan mengembalikan Anda ke prompt baru.
Andrew Keech
@ givonz, hmm saya menggunakan kunci TAB bro. itu bukan output. mungkin pola biner.
rɑːdʒɑ
Suara negatif untuk apa?
rɑːdʒɑ
2
Saya tidak downvote tapi saya pikir jawabannya harus menjelaskan mengapa 2 output pertama berbeda dan apa perannya apt-cache, terutama untuk pemula Ubuntu.
AL
2
Python 3.x harus bekerja dengan 16.04 - Sebenarnya, itu pasti AKAN bekerja. Saya memiliki Ubuntu 14.04 dan saya memiliki Python 3.4.3 - Yang harus Anda lakukan untuk mengujinya adalah mengetik python3dan itu akan memberi tahu Anda versi apa yang sedang Anda jalankan.
Yah saya tidak akan menelepon menggunakan ilmu komputer OS. Dan sebenarnya: Ubuntu adalah OS berbasis Linux dan bukan berbasis Unix.
magu_
saya belum memahami linux beda bet & unix selain beberapa perintah meminta & berbeda, tetapi perintah kata dekat. meskipun gui jauh lebih maju daripada yang saya lihat di solaris.
Jawaban:
Saya tidak tahu "docs" apa yang Anda baca atau apa yang mereka katakan, tetapi
/usr/bin/python
itu hanyalah tautan simbolis ke versi default python, dalam hal ini 2.7, yang merupakan hasil dari hanya mengetikpython
di terminal. Ini adalah hasil dari PEP 394 yang mendefinisikan itutype python
danfile /usr/bin/python
akan mengkonfirmasi ini.Alasan untuk pengaturan ini selain dari konvensi, adalah bahwa paket source python-default di Xenial adalah versi 2.7.11 , sehingga tautan simbolik python menunjuk ke versi ini.
Untuk menggunakan python 3 Anda harus eksplisit dan mengetikkan
python3
baris perintah, yang direkomendasikan jika Anda memerlukan versi tertentu, ini juga bisa dilakukan dengan python 2, mengetikpython2
. Ubuntu menyertakan versi python 2 dan 3 secara default di semua versi saat ini.Ada rencana untuk memigrasi semuanya ke python 3 dan menandainya sebagai default.
sumber
Untuk mendapatkan Python 3.5 REPL atau menjalankan skrip yang kompatibel, ketik
python3
. Ini untuk menjaga kompatibilitas dengan semua legacy python 2.x (yang selalu, dan akan tetap terhubung denganpython
).Tanda hubung dapat menemukan
python
jika Anda mengatur.desktop
file untuk itu~/.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 tentang python 3.5 menjadi default adalah pengelola mem-porting semua skrip sistem dari python 2.x ke python 3.x, bukan bahwa python 3 akan menggantikan python 2 dalam semua kasus.
sumber
#!/usr/bin/python3
(atau#!/usr/bin/python2
) dalam skrip, lebih baik menggunakan (hanya untuk python, khususnya)#!/usr/bin/env python3
jika Anda ingin itu menjadi portabel jarak jauh. Untuk sebagian besar, ini hanya dokumentasi, karena dalam banyak kasus itu akan tetap dipanggil menggunakan$ python3 your_pyprogram.py
.Anda menganggap bahwa Python default harus tersedia sebagai
python
. Anggapan itu salah.Pada sistem yang dilengkapi dengan Python 3 "preloaded" dan tidak ada Python 2 sama sekali, hanya akan ada
python3
dan tidak adapython
.Kode yang ditulis untuk Python 3 harus selalu mencari penerjemah yang dipanggil
python3
. Kode yang ditulis untuk Python 2 akan dicari secara historispython
.Mungkin ada saatnya, mungkin beberapa dekade dari sekarang, di mana hampir tidak ada yang mengingat Python 2, ketika
python
mulai merujukpython3
. Ini murni untuk kenyamanan, dan bisa dan tidak boleh dilakukan prematur, jika sama sekali! Tidak ada terburu-buru, karena dampak berikut:Sistem "Saat ini lama" tidak akan memiliki pengetahuan tentang
python2
, hanyapython
, jadi sangat masuk akal untuk menjaga kode Python 2 mencaripython
. Ini adalah alasan mengapapython
harus merujuk ke Python 2 untuk "selama kode Python 2 ada".Kode baru yang ditulis untuk Python 2, jika itu masuk akal, dapat dicari dengan sempurna
python
. Mungkin juga mencaripython2
, jika dimaksudkan untuk berjalan hanya pada sistem Python 3 sadar dan terawat (yang seharusnya menawarkan tautan tersebut).Manfaat menggunakan kode Python 2
python2
adalah tidak perlu sentuhan ekstra setelahpython
mulai merujukpython3
, yang mungkin tidak pernah terjadi, atau sekalipython
hilang sama sekali, yang mungkin atau mungkin tidak terjadi. (Itu mungkin menjadi kenyataan, jika kode Python 2 mati setelah hipotesis Python 4 menjadi populer dengan penerjemahnyapython4
. - Karena membiarkannya menunjuk ke salah satupython3
ataupython4
keduanya akan membingungkan.)sumber
Versi Python kedua 2.x, 3.x tersedia. jika Anda memanggil python seperti yang ditunjukkan ke python 2.x itu akan memuat python 2.x
Gambar di bawah ini akan membantu Anda.
sumber
python
adalah dari menggunakan<tab>
untuk meminta autocompleter, yang kemudian menampilkan kemungkinan permutasipython*
dan mengembalikan Anda ke prompt baru.apt-cache
, terutama untuk pemula Ubuntu.Python 3.x harus bekerja dengan 16.04 - Sebenarnya, itu pasti AKAN bekerja. Saya memiliki Ubuntu 14.04 dan saya memiliki Python 3.4.3 - Yang harus Anda lakukan untuk mengujinya adalah mengetik
python3
dan itu akan memberi tahu Anda versi apa yang sedang Anda jalankan.sumber