Meng-upgrade ke python 3.2

22

Saya ingin menggunakan functools baru yang menyediakan lrucache, saya saat ini menggunakan python 2.6, yang tidak mendukung ini,

Apa cara terbaik yang dapat saya tingkatkan ke python 3.2? atau apakah ada cara lain yang bisa saya gunakan itertools + functools dari rilis 3.2 dalam distribusi python 2.6

Terima kasih

pelajar
sumber
Mungkin resep ini bermanfaat?
JanC

Jawaban:

24

Karena banyak program dan pustaka mengandalkan Python 2.6 (atau python 2.7 dalam 11.04), dan karena python 2.x dan 3.x tidak kompatibel, Anda tidak dapat memutakhirkan - Anda hanya dapat menginstal python3 bersama python 2.6:

Python 3.1

  • Untungnya, rilis stabil Python 3 (3.1.2 pada saat penulisan ini) disediakan di repositori. Cukup instal paket python3-all  .

    Penerjemah Anda akan /usr/bin/python3menggantikan /usr/bin/python.

    Anda juga dapat mengetik python3di terminal saat Anda ingin meluncurkan Py3, bukan Py2.


Python 3.2

  • Anda dapat, mengunduh versi sumber python dari python.org dan menjalankannya

    ./configure
    make
    sudo make altinstall

    Untuk dapat mengkompilasi sumber python, Anda memerlukan beberapa paket:

    sudo apt-get install build-essential libncursesw5-dev libreadline5-dev libssl-dev libgdbm-dev libc6-dev libsqlite3-dev tk-dev libbz2-dev

    Opsi alinstall akan menginstal versi python lain di samping yang sudah ada:

    Masuk akal untuk, alih-alih mengunduh sumbernya, periksa rilis pengembangan terbaru dari repositori python dev sesekali:

    svn checkout http://svn.python.org/projects/python/branches/py3k

    Ini akan memberi Anda versi pengembangan, tidak stabil, terbaru. Anda dapat cd py3k/dan melakukan prosedur kompilasi di atas.

    Untuk ini, svn  perlu diinstal tentu saja.

Stefano Palazzo
sumber
1
Jawaban ini bagus, saya membenarkan, tetapi saya ingin lebih mendalam. Saya dapat memanggil Python baru sebagai 'python3.2', yang baik-baik saja, tetapi dapatkah saya mengatur semuanya sehingga program pribadi saya akan menggunakan versi ini secara default (mis., Dapatkan python3.2 sebagai 'python' pertama di PATH) sementara sistem tetap aman menggunakan python2.6? Saya bertanya bukan karena saya tidak suka mengetik 'python3.2', tetapi karena beberapa
Jonathan Hartley
1
@ Tartley Komentar Anda terputus di sana, mengapa Anda ingin melakukannya?
Stefano Palazzo
1
(oops, terima kasih.) ... tetapi karena beberapa alat misalnya skrip bash, yang memanggil komponen Python mereka menggunakan 'python xxx.py', dan mereka hanya berjalan di bawah Python 3.2. Jadi saya ingin membuat lingkungan (memang, saya ingin itu menjadi lingkungan default pribadi saya) di mana Python 3.2 (dan semua skrip, alat, dll) adalah yang pertama di jalur, sementara meninggalkan sistem Python 2.6 untuk sistem untuk gunakan (memang, berdasarkan preferensi, saya ingin menghapus ini dari jalur pribadi saya hanya untuk memastikan tidak ada kebingungan tentang Python yang saya jalankan)
Jonathan Hartley