Memutakhirkan ke python 2.7.5 di Ubuntu 12.04

9

Ubuntu 12.04 datang dengan python v 2.7.3secara default. Saya ingin memutakhirkan ke v 2.7.5. Saya mencoba instruksi yang diberikan dalam pertanyaan ini ,

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

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

Perintah terakhir gagal dengan kesalahan:

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

Bagaimana saya bisa melakukan peningkatan ini?

Gabriel
sumber
3
Apakah Anda sangat yakin harus memutakhirkan ke 2.7.5? Semua perbaikan bug sedang di-backport ke 2.7.3 di Ubuntu. Anda benar-benar ingin menyelamatkan Anda dari sakit kepala dengan kompilasi dari sumber. Harap berikan alasan spesifik untuk menginstal 2.7.5. Di situs ini, pertanyaan tentang penginstalan Python yang rusak adalah urusan sehari-hari dan sangat umum untuk melihatnya disebabkan oleh penginstalan dari sumber. Lihat misalnya askubuntu.com/q/323248/88802
gertvdijk
1
Saya menggunakan paket dengan cara yang salah tetapi pertanyaannya tetap dan saya benar-benar tidak memahami downvote tanpa penjelasan yang diberikan.
Gabriel
Apa yang terjadi ketika Anda menjalankan sudo make **install**bukan sudo make **altinstall**? Apakah Anda mendapatkan kesalahan yang sama?
Kevin Bowen
Sekarang saya takut benar - benar mencoba solusi Anda karena saya sudah mendengar berkali-kali itu akan merusak sistem saya. Saya akan menandai jawaban Anda sebagai diterima karena itu terlihat sangat lengkap. Terima kasih.
Gabriel
2
@Gabriel Solusi oleh maggotbrain sangat bagus; ini memungkinkan Anda untuk menginstal versi pilihan Anda dalam sebuah pyenv. Tidak ada salahnya dilakukan pada Python sistem Anda. Saya akan mengingat ini untuk pertanyaan mendatang. :)
gertvdijk

Jawaban:

13

Menginstal dari sumber dapat dilakukan, tentu saja, tetapi saya akan ragu untuk memutakhirkan paket python sistem Ubuntu saya dari sumber karena beberapa alasan:

  1. Melakukan hal itu dapat merusak sistem dengan melakukan kompilasi langsung dari sumber (Saya tidak yakin bagaimana Ubuntu mengkustomisasi paket Python yang dibuatnya).

  2. Saya khawatir bahwa mungkin ada masalah dengan menggunakan modul dari repositori ke depan.

Ada PPA yang terlihat aktif (kereta 2.7.x dibangun terakhir pada bulan April tahun ini), tetapi PPA belum memiliki build 2.7.5. Anda mungkin ingin melakukan ping ke pengelola dan melihat apa rencana mereka untuk pembangunan di masa mendatang dan jika mereka akan memasukkannya untuk 2.7.5. Jika memungkinkan, saya akan merekomendasikan ini daripada menginstal dari sumber. Seperti halnya perangkat lunak baru, saya akan merekomendasikan membangun ini pada sistem pengujian terlebih dahulu.

Pilihan lain adalah menggunakan kotak pasir ( pyenv) untuk menjalankan paket perangkat lunak baru yang belum diuji. Instalasi langsung ke sistem Anda dapat berdampak buruk pada pengoperasian mesin Anda.

Pyenv paket akan memungkinkan seseorang untuk menginstal versi Python non-sistem pada kotak Anda tanpa memengaruhi paket Python utama yang diinstal pada mesin Anda (Sekali lagi: Sistem Anda bergantung pada versi Python yang saat ini diinstal dan memutakhirkannya dapat merusak sistem Anda). Sebelumnya, Pythonbrew direkomendasikan untuk mengisolasi paket python dari sistem, tetapi sejak itu telah ditinggalkan dan digantikan oleh pyenvpaket tersebut.

The pyenvpaket menyediakan fungsi berikut:

  • Memungkinkan Anda mengubah versi Python global berdasarkan per pengguna.
  • Memberikan dukungan untuk versi Python per proyek.
  • Memungkinkan Anda mengganti versi Python dengan variabel lingkungan.
  • Cari perintah dari beberapa versi Python sekaligus.

Instalasi

  1. Lihat pyenv ke ~ / .pyenv.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Tambahkan ~ / .pyenv / bin ke $ PATH Anda untuk akses ke utilitas baris perintah pyenv.

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Catatan Zsh: Ubah ~/.zshenvfile Anda, bukan ~/.bash_profile.

  3. Tambahkan pyenv init ke shell Anda untuk mengaktifkan shims dan pelengkapan otomatis.

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Catatan Zsh: Ubah ~/.zshenvfile Anda, bukan ~/.bash_profile.

  4. Nyalakan kembali shell Anda agar perubahan path diterapkan. Anda sekarang dapat mulai menggunakan pyenv.

    exec $SHELL
  5. Instal versi Python ke ~ / .pyenv / versi. Misalnya, untuk menginstal Python 2.7.5, unduh dan buka paket sumbernya, kemudian jalankan:

    pyenv install 2.7.5

    CATATAN Jika Anda harus meneruskan opsi konfigurasi untuk membangun dari sumber, silakan gunakan variabel lingkungan CONFIGURE_OPTS.

  6. Bangun kembali binari shim. Anda harus melakukan ini setiap kali Anda menginstal biner Python baru (misalnya, ketika menginstal versi Python baru, atau ketika menginstal paket yang menyediakan biner).

    pyenv rehash
Kevin Bowen
sumber
1
pyenvbrilian karena banyak alasan. Bantu saya dengan eksperimen saya dengan sangat mudah setelah pengaturan awal.
Fahad Yousuf
Apakah ini akan dijalankan dari homefolder pengguna tertentu ? Bagaimana saya bisa menginstal ini untuk setiap pengguna? Dapatkah saya menginstal ./pyenvdi /usr/local/binatau adalah bahwa ide yang buruk?
biohazard