Nâng cấp lên python 2.7.5 trên Ubuntu 12.04


9

Ubuntu 12.04 đi kèm python v 2.7.3theo mặc định. Tôi muốn nâng cấp nó lên v 2.7.5. Tôi đã thử các hướng dẫn được đưa ra trong câu hỏi này ,

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

Lệnh cuối cùng không thành công với lỗi:

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

Làm thế nào tôi có thể thực hiện nâng cấp này?


3
Bạn có rất chắc chắn rằng bạn cần nâng cấp lên 2.7.5? Tất cả các lỗi đang được nhập vào 2.7.3 trong Ubuntu. Bạn thực sự thực sự muốn cứu bạn tất cả các vấn đề đau đầu với việc biên dịch từ nguồn. Vui lòng cung cấp lý do cụ thể để cài đặt 2.7.5. Trên trang web này, các câu hỏi về cài đặt Python bị hỏng là việc kinh doanh hàng ngày và rất phổ biến khi thấy nó bị gây ra bởi cài đặt từ nguồn. Xem ví dụ: Askubfox.com/q/323248/88802
gertvdijk

1
Tôi đã sử dụng một gói sai cách nhưng câu hỏi vẫn tồn tại và tôi thực sự không hiểu downvote mà không có lời giải thích nào được đưa ra.
Gabriel

Điều gì xảy ra khi bạn chạy sudo make **install**thay vì sudo make **altinstall**? Bạn có nhận được cùng một lỗi?
Kevin Bowen

Bây giờ tôi sợ thực sự thử giải pháp của bạn vì tôi đã nghe rất nhiều lần nó sẽ phá vỡ hệ thống của tôi. Tôi sẽ đánh dấu câu trả lời của bạn là được chấp nhận bởi vì nó trông thực sự hoàn chỉnh. Cảm ơn bạn.
Gabriel

2
@Gabriel Giải pháp của maggotbrain là một giải pháp rất hay; nó cho phép bạn cài đặt phiên bản bạn chọn trong một pyenv. Không có hại được thực hiện trên Python hệ thống của bạn. Tôi sẽ nhớ điều này cho các câu hỏi trong tương lai. :)
gertvdijk

Câu trả lời:


13

Việc cài đặt từ nguồn có thể được thực hiện, tất nhiên, nhưng tôi sẽ do dự để nâng cấp gói python của hệ thống Ubuntu của tôi từ nguồn vì một số lý do:

  1. Làm như vậy có thể phá vỡ hệ thống bằng cách biên dịch thẳng từ nguồn (Tôi không chắc chắn chính xác cách Ubuntu tùy chỉnh các bản dựng gói Python của họ).

  2. Tôi sẽ lo ngại rằng có thể có vấn đề với việc sử dụng các mô-đun từ kho lưu trữ trong tương lai.

Có một PPA có vẻ hoạt động (tàu 2.7.x được xây dựng lần cuối vào tháng 4 năm nay), nhưng PPA chưa có bản dựng 2.7.5. Bạn có thể muốn ping người bảo trì và xem kế hoạch của họ dành cho các bản dựng trong tương lai và liệu họ có bao gồm một bản cho 2.7.5 không. Nếu có thể, tôi sẽ khuyên bạn nên cài đặt này từ nguồn. Như với bất kỳ phần mềm mới nào, trước tiên tôi khuyên bạn nên xây dựng phần mềm này trên hệ thống thử nghiệm.

Một tùy chọn khác là sử dụng hộp cát ( pyenv) để chạy bất kỳ gói phần mềm chưa được kiểm tra mới nào. Cài đặt thẳng vào hệ thống của bạn có thể ảnh hưởng xấu đến hoạt động của máy.

Gói pyenv sẽ cho phép một người cài đặt phiên bản Python không phải hệ thống trên hộp của bạn mà không ảnh hưởng đến gói Python chính được cài đặt trên máy của bạn (Một lần nữa: Hệ thống của bạn phụ thuộc vào phiên bản Python hiện được cài đặt và nâng cấp nó có thể phá vỡ hệ thống của bạn). Trước đây, Pythonbrew đã được đề xuất để cách ly các gói python khỏi hệ thống, nhưng điều đó đã bị từ chối và thay thế bởi pyenvgói.

Các pyenvgói cung cấp các chức năng sau:

  • Cho phép bạn thay đổi phiên bản Python toàn cầu trên cơ sở mỗi người dùng.
  • Cung cấp hỗ trợ cho các phiên bản Python trên mỗi dự án.
  • Cho phép bạn ghi đè phiên bản Python bằng biến môi trường.
  • Tìm kiếm các lệnh từ nhiều phiên bản Python cùng một lúc.

Cài đặt

  1. Kiểm tra pyenv vào ~ / .pyenv.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. Thêm ~ / .pyenv / bin vào $ PATH của bạn để truy cập vào tiện ích dòng lệnh pyenv.

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

    Lưu ý Zsh: Sửa đổi ~/.zshenvtệp của bạn thay vì ~/.bash_profile.

  3. Thêm init pyenv vào shell của bạn để kích hoạt shims và tự động hoàn thành.

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

    Lưu ý Zsh: Sửa đổi ~/.zshenvtệp của bạn thay vì ~/.bash_profile.

  4. Khởi động lại vỏ của bạn để thay đổi đường dẫn có hiệu lực. Bây giờ bạn có thể bắt đầu sử dụng pyenv.

    exec $SHELL
  5. Cài đặt các phiên bản Python vào ~ / .pyenv / phiên bản. Ví dụ: để cài đặt Python 2.7.5, hãy tải xuống và giải nén nguồn, sau đó chạy:

    pyenv install 2.7.5

    LƯU Ý Nếu bạn cần vượt qua các tùy chọn cấu hình để xây dựng từ nguồn, vui lòng sử dụng biến môi trường CONFIGURE_OPTS.

  6. Xây dựng lại các nhị phân shim. Bạn nên làm điều này bất cứ khi nào bạn cài đặt nhị phân Python mới (ví dụ: khi cài đặt phiên bản Python mới hoặc khi cài đặt gói cung cấp nhị phân).

    pyenv rehash

1
pyenvrực rỡ vì rất nhiều lý do. Giúp tôi với thử nghiệm của mình vô cùng với rắc rối tối thiểu sau khi thiết lập ban đầu.
Fahad Yousuf

Đây có phải là sẽ được chạy từ một homethư mục cụ thể của người dùng ? Làm thế nào tôi có thể cài đặt cái này cho mọi người dùng? Tôi có thể cài đặt ./pyenvtrong đó /usr/local/binhoặc đó là một ý tưởng tồi?
nguy hiểm sinh học
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.