Cài đặt phiên bản mới hơn và cũ hơn của python trên debian?


12

Làm cách nào tôi có thể cài đặt các phiên bản bổ sung của python trên Debian (jessie). Trên Ubuntu, tôi có thể sử dụng PPA "dowsnakes" sẽ cung cấp cho tôi bất kỳ phiên bản python nào tôi muốn, với tên phiên bản trong lệnh (ví dụ: python33cho python 3.3). Điều này cho phép tôi cài đặt tất cả chúng cạnh nhau. Tôi có thể sử dụng virtualenv để cài đặt các gói python cụ thể cho các phiên bản cụ thể mà không gây rối với các gói hệ thống. Tôi duy trì một số thư viện python và chúng cần hoạt động trên nhiều phiên bản của python. Nếu tôi đã cài đặt nhị phân python, thì tox sẽ đảm nhiệm việc sử dụng virtualenvs cho mỗi phiên bản python.

Vì vậy, các tương đương debian của PPA giả là gì?

CẬP NHẬT Tôi muốn cài đặt python: 2.6, 2.7, 3.3, 3.4 và 3.5.


Bạn có thể chỉ định phiên bản Python nào bạn muốn cài đặt không? Tôi nghĩ rằng Jessie có một vài phiên bản khác nhau có sẵn.
Faheem Mitha

Theo tôi, có lẽ tốt hơn hết là bạn chỉ cần cài đặt các phiên bản Python khác nhau từ nguồn.
Celada

Câu trả lời:


9

Sử dụng PPA

Bạn có thể sử dụng PPA trên Debian. Chọn một phiên bản Ubuntu từ một chút trước phiên bản Debian của bạn và nó sẽ có tất cả các thư viện cần thiết. Đối với khò khè, PPA một chiều có vẻ ổn (nhưng nó thiếu các phiên bản Python gần đây hơn). Đối với jessie, PPA đáng tin cậy nên hoạt động.

Để thêm PPA trên Debian, hãy tạo một tệp /etc/apt/sources.list.d/deadsnakes.listchứa

deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main 

Tải xuống khóa ký PPA với

gpg --keyserver keyserver.ubuntu.com --recv-keys DB82666C

sau đó thêm khóa vào cơ sở dữ liệu khóa APT với

gpg --export DB82666C | sudo apt-key add -

Cuối cùng chạy apt-get updatevà cài đặt các gói mong muốn.

Nếu bạn không thể khiến PPA hoạt động vì một số lý do (có thể bạn không thể tìm thấy phiên bản hoạt động với các thư viện bạn có), bạn có thể tải xuống nguồn và biên dịch lại chúng để phân phối.

Sử dụng một hệ thống chroot

Những gì tôi thường làm để kiểm tra khả năng tương thích với các phiên bản khác là chạy các bản phân phối cũ hơn hoặc mới hơn trong một hệ thống chroot . Ví dụ: bạn có thể cài đặt các phiên bản Ubuntu khác nhau với các phiên bản Python mà bạn quan tâm hoặc bạn có thể cài đặt đáng tin cậy trong một chiếc chroot và cài đặt PPA ở đó. Để biết thêm thông tin, xem hướng dẫn schroot của tôi .


1
Bạn nên tránh sử dụng Ubuntu PPA trên Debian, vì nó có thể gây ra sự cố hoặc xung đột khác. (Cũng có thể sử dụng môi trường pyenvảo cho nhiều phiên bản Python)
Thomas Ward

Tôi có thể xác nhận rằng tôi đã cài đặt thành công python 2.6, 2.7, 3.1, 3.2, 3.3, 3.5 và 3.6 trong thử nghiệm debian hiện tại bằng cách sử dụng phương pháp này. Nhắc nhở duy nhất tôi gặp phải là tôi cần khai thác một phiên bản cũ libssl1.0.0mà tôi tìm thấy ở đây: tests.debian.org/jessie/libssl1.0.0 . Tôi cũng đã sử dụng các phiên bản xenial (16.04) của các gói ( lts hiện tại), mặc dù tôi tin rằng sự tin cậy vẫn hoạt động.
Att Righ

1

Tôi muốn nói rằng không có Debian tương đương với PPA giả của Ubuntu

Trong Debian, không nên sử dụng các gói hoặc kho Ubuntu. Khi bài đăng này xuất hiện trong các công cụ tìm kiếm, tôi đề xuất ở đây một câu trả lời ít nguy hiểm hơn cho hệ thống Debian.

Cài đặt Python bằng tay là có thể. Ví dụ: bạn có thể sử dụng các hướng dẫn sau để cài đặt phiên bản 3.5.2

Điều kiện tiên quyết

Cài đặt phụ thuộc:

sudo apt-get update && sudo apt-get install libssl-dev openssl

Xây dựng Python

Bạn có thể xây dựng Python trong một thư mục cụ thể bằng cách sử dụng --prefixtham số từ configurelệnh:

wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar zxf Python-3.5.2.tgz
cd Python-3.5.2/
./configure --prefix=/usr/local
make
sudo make install

Thay vì /usr/local, người ta có thể sử dụng một thư mục cơ sở khác. Ví dụ:

sudo mkdir /opt/python-3.5.2
./configure --prefix=/opt/python-3.5.2

Chọn phiên bản trăn

Sử dụng biến môi trường PATH có thể giúp chọn đúng phiên bản python để sử dụng. Nhưng người ta cũng có thể sử dụng symlink:

sudo ln -s /opt/python-3.5.2/bin/python3.5 /usr/local/bin/python3
sudo ln -s /opt/python-3.5.2/bin/pip3.5 /usr/local/bin/pip3

Sử dụng -f tùy chọn sẽ cho phép bạn thay thế các liên kết tượng trưng hiện 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.