Zainstalować nowsze i starsze wersje Pythona na Debianie?

12

Jak mogę zainstalować dodatkowe wersje Pythona na Debianie (Jessie). Na Ubuntu mogę używać PPA „deadsnakes”, które da mi dowolną wersję Pythona, której chcę, z nazwą wersji w poleceniu (np. python33Dla Pythona 3.3). To pozwala mi zainstalować je wszystkie obok siebie. Mogę używać virtualenvs do instalowania określonych pakietów Pythona dla określonych wersji bez bałaganu w pakietach systemowych. Utrzymuję niektóre biblioteki Pythona i muszą działać na wielu wersjach Pythona. Jeśli mam zainstalowany plik binarny Pythona, to toks zajmie się użyciem virtualenvs dla każdej wersji Pythona.

Więc jaki jest debianowy odpowiednik Deadsnakes PPA Ubuntu?

AKTUALIZACJA Chcę zainstalować Python: 2.6, 2.7, 3.3, 3.4 i 3.5.

Rory
źródło
Czy możesz określić, które wersje Pythona chcesz zainstalować? Myślę, że Jessie ma kilka różnych dostępnych wersji.
Faheem Mitha,
Moim zdaniem prawdopodobnie lepiej jest po prostu zainstalować różne wersje Pythona ze źródła.
Celada,

Odpowiedzi:

9

Korzystanie z PPA

Możesz używać PPA na Debianie. Wybierz wersję Ubuntu, która jest nieco wcześniejsza niż wersja Debiana, i powinna mieć wszystkie niezbędne biblioteki. Dla wheezy, oneiryczne PPA wydaje się w porządku (ale brakuje mu nowszych wersji Pythona). W przypadku jessie zaufana PPA powinna działać.

Aby dodać PPA do Debiana, utwórz plik /etc/apt/sources.list.d/deadsnakes.listzawierający

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

Pobierz klucz do podpisywania PPA za pomocą

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

następnie dodaj klucz do bazy danych kluczy APT za pomocą

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

Na koniec uruchom apt-get updatei zainstaluj żądane pakiety.

Jeśli z jakichś powodów nie możesz uruchomić PPA (być może nie możesz znaleźć wersji, która działa z bibliotekami, które masz), możesz pobrać źródło i ponownie skompilować je dla swojej dystrybucji.

Korzystanie z systemu chrootowanego

To, co zwykle robię, aby przetestować zgodność z innymi wersjami, to uruchamianie starszych lub nowszych dystrybucji w systemie chroot . Na przykład, możesz zainstalować różne wersje Ubuntu z interesującymi wersjami Pythona lub możesz zainstalować zaufany w chroot i zainstalować tam PPA. Aby uzyskać więcej informacji, zobacz mój przewodnik schroot .

Gilles „SO- przestań być zły”
źródło
1
Powinieneś unikać używania Ubuntu PPA na Debianie, ponieważ może to powodować problemy lub inne konflikty. (Możliwe jest także użycie pyenvwirtualnych środowisk dla wielu wersji Pythona)
Thomas Ward,
Mogę potwierdzić, że pomyślnie zainstalowałem Pythona 2.6, 2.7, 3.1, 3.2, 3.3, 3.5 i 3.6 na bieżących testach Debiana przy użyciu tego podejścia. Jedynym zastrzeżeniem, jakie napotkałem, było to, że musiałem wykopać starą wersję, libssl1.0.0którą znalazłem tutaj: packages.debian.org/jessie/libssl1.0.0 . Użyłem także Xenial (16.04) wersji pakietów (obecne lts), chociaż uważam, że zaufany nadal działa.
Att Righ,
1

Powiedziałbym, że nie ma Debiana równoważnego z deadsnakes PPA Ubuntu

W Debianie nie jest zalecane używanie pakietów lub repozytoriów Ubuntu. Ponieważ ten post pojawia się w wyszukiwarkach, proponuję tutaj odpowiedź, która jest mniej niebezpieczna dla systemu Debian.

Ręczna instalacja Pythona jest możliwa. Jako przykład możesz użyć poniższych instrukcji, aby zainstalować wersję 3.5.2

Wymagania wstępne

Zainstaluj zależności:

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

Budowanie Pythona

Możesz zbudować Python w określonym folderze, używając --prefixparametru z configurepolecenia:

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

Zamiast tego /usr/localmożna użyć innego katalogu podstawowego. Jako przykład:

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

Wybór wersji Pythona

Użycie zmiennej środowiskowej PATH może pomóc w wyborze odpowiedniej wersji Pythona do użycia. Ale można również użyć dowiązań symbolicznych:

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

Użycie -fopcji pozwoli Ci zastąpić istniejące dowiązania symboliczne

lauhub
źródło