Python — to wielofunkcyjny język programowania, który nadaje się do rozwiązywania różnych zadań, od tworzenia stron internetowych po analizę danych. Jest popularny wśród programistów dzięki swojej prostocie i uniwersalności.
W tym artykule opowiemy, jak zainstalować Pythona na swoim dystrybucji Linux.
Rozważymy trzy opcje instalacji Pythona:
- Za pomocą menedżera pakietów — najprostsza i najczęściej stosowana metoda instalacji Pythona. W większości dystrybucji Linux pakiety Pythona są już dostępne w ich repozytoriach.
- Z kodu źródłowego — ta metoda zapewnia większą elastyczność, ale może być bardziej skomplikowana.
- Za pomocą menedżera pakietów dla Pythona (pyenv) — najwygodniejszy sposób, wymagający dodatkowych ustawień.
Sprawdzanie wersji Pythona
Zazwyczaj w większości dystrybucji Linux Python 3 jest już zainstalowany jako opcja standardowa. Możemy sprawdzić jego wersję za pomocą następującego polecenia, otwierając terminal.
python3 --version
Jednak w przestarzałych wersjach dystrybucji może być zainstalowany Python 2, dla którego używamy polecenia
python --version
Instalacja Pythona za pomocą menedżera pakietów
Przed instalacją należy zaktualizować pakiety systemowe i repozytoria, a tutaj rozważymy różne metody dla różnych wersji
Debian / Ubuntu
sudo apt update && sudo apt upgrade -y
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum update -y
Dla dystrybucji Ubuntu łatwo jest rozszerzyć listę dostępnych wersji, dodając repozytorium deadsnakes:
sudo add-apt-repository ppa:deadsnakes/ppa
Dla dystrybucji opartych na Red Hat (Fedora / Almalinux / RockyOS / CentOS) łatwo jest dodać repozytorium EPEL (Extra Packages for Enterprise Linux):
sudo yum install epel-release -y
Następnie musimy sprawdzić, jakie wersje Pythona są dostępne do instalacji:
Debian / Ubuntu
sudo apt search python | grep ^python
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum list available | grep ^python
Aby ograniczyć się do potrzebnej wersji, należy wpisać polecenie według przykładu (sprawdzamy, czy dostępna jest wersja python 3.8, ponieważ wersja 12 jest już zainstalowana)
Debian / Ubuntu
sudo apt-cache search python | grep -E ^python3?\.8
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum list available | grep -E ^python3?\.8
Jeśli na liście znajduje się potrzebna wersja, można ją zainstalować za pomocą polecenia
Debian / Ubuntu
sudo apt install python3.8
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum install python3.8 -y
Ważny moment, a mianowicie, czy należy podać wersję mniejszą przez kropkę (python3.10) czy bez (python310), zależy od tego, jak nazywa się pakiet wersji. Można to sprawdzić w wyniku wykonania poprzednich poleceń, które użyliśmy do sprawdzenia dostępnych wersji do instalacji.
Aby odwołać się do zainstalowanej wersji interpretera, należy podać jej numer i wersję w poleceniu:
python3.8 --version
Kompilacja Pythona z kodu źródłowego
Kompilacja wersji Pythona z kodu źródłowego wymaga zainstalowania dodatkowych zależności. Wykonujemy instalację następującymi poleceniami:
Debian / Ubuntu
sudo apt-get install -y make curl build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum -y install epel-release
sudo yum -y groupinstall «Narzędzia deweloperskie»
sudo yum -y install curl gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel tk-devel
Dla wygody dalszej pracy nad instalacją Pythona w zmiennych powłoki, ustawmy numer wersji jako zmienną
Sprawdzić listę dostępnych wersji Pythona można na oficjalnej stronie https://www.python.org/downloads/source/
Należy pobrać i rozpakować archiwum z kodem źródłowym, a następnie przejść do rozpakowanego katalogu, a aby uprościć sobie zadanie, możemy skorzystać z serwisu Build, compile and install Python from source code https://www.build-python-from-source.com/
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev liblzma-dev tk-dev
cd /tmp/
wget https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgz
tar xzf Python-3.9.20.tgz
cd Python-3.9.20
Teraz podajemy konfigurację do budowy i uruchamiamy kompilację
sudo ./configure --prefix=/opt/python/3.9.20/ --enable-optimizations --with-lto --with-computed-gotos --with-system-ffi --enable-shared
sudo make -j "$(nproc)"
sudo ./python3.9 -m test -j "$(nproc)"
sudo make altinstall
sudo rm /tmp/Python-3.9.20.tgz
W zależności od naszych potrzeb w korzystaniu z Pythona, możemy dodać następujące opcje do polecenia ./configure, które użyliśmy powyżej. Teraz podamy przykłady tego, co możemy dodać:
--prefix=/path/to/directory - Wskazuje katalog instalacji.
--enable-optimizations - Włącza optymalizację dla Pythona.
--enable-ipv6 - Włącza wsparcie dla sieci IPv6.
--with-lto - Włącza Link-Time Optimization (LTO), co poprawi wydajność, ale może zwiększyć czas kompilacji.
Aby dowiedzieć się więcej o wszystkich opcjach, konfiguracji, należy wykonać polecenie
./configure --help
Następnie możemy dodać dodatkowe narzędzia do pracy
sudo /opt/python/3.9.20/bin/python3.9 -m pip install --upgrade pip setuptools wheel
sudo ln -s /opt/python/3.9.20/bin/python3.9 /opt/python/3.9.20/bin/python3
sudo ln -s /opt/python/3.9.20/bin/python3.9 /opt/python/3.9.20/bin/python
sudo ln -s /opt/python/3.9.20/bin/pip3.9 /opt/python/3.9.20/bin/pip3
sudo ln -s /opt/python/3.9.20/bin/pip3.9 /opt/python/3.9.20/bin/pip
sudo ln -s /opt/python/3.9.20/bin/pydoc3.9 /opt/python/3.9.20/bin/pydoc
sudo ln -s /opt/python/3.9.20/bin/idle3.9 /opt/python/3.9.20/bin/idle
sudo ln -s /opt/python/3.9.20/bin/python3.9-config /opt/python/3.9.20/bin/python-config
Po uruchomieniu tego kodu nastąpi kompilacja, która zajmie trochę czasu, a w rezultacie powinniśmy znaleźć się w katalogu naszej zainstalowanej wersji
Teraz ważny krok, a mianowicie należy sprawdzić poprawność instalacji Pythona. Dla naszej zainstalowanej wersji 3.9.20 - sprawdzamy następującym poleceniem:
python3.9 --version
Jeśli wszystko działa poprawnie, należy usunąć pliki kodu źródłowego, z których wykonywaliśmy kompilację, ponieważ nie są już potrzebne:
rm -rf /tmp/Python-3.9.20 /tmp/Python-3.9.20.tar.gz
Zdarza się, że kompilacja kończy się błędami. W takim przypadku należy ponownie wykonać instalację, ale tym razem bez optymalizacji. Przed tym należy wykonać czyszczenie plików tymczasowych, które zostały utworzone w trakcie naszej poprzedniej kompilacji:
sudo make clean; ./configure; sudo make -j «$(nproc)»; sudo make install
Instalacja Pythona za pomocą pyenv
Jeśli powyższe metody nam nie odpowiadają, zalecamy spróbować pyenv, jest on niezwykle wygodny, jeśli trzeba pracować nad kilkoma projektami, które wymagają różnych wersji interpretera. Ten menedżer wersji pozwala łatwo przełączać się między wersjami i izolować zależności projektu.
Zanim zainstalujemy pyenv, musimy zainstalować zależności potrzebne do kompilacji Pythona, polecenia do ich instalacji są nam już znane z tego artykułu powyżej, ale należy dodać również pakiet git, ponieważ będziemy pobierać pyenv z repozytorium git
Debian / Ubuntu
sudo apt install -y curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev build-essential libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
RHEL (Fedora / Almalinux / RockyOS / CentOS)
sudo yum -y install epel-release
sudo yum -y groupinstall «Narzędzia deweloperskie»
sudo yum -y install git curl gcc make zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel tk-devel
Następnie pobieramy ostatnią gałąź kodu źródłowego pyenv z repozytorium na Github i instalujemy go w ścieżce ~/.pyenv :
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Teraz należy ustawić zmienną środowiskową PYENV_ROOT, aby wskazywała na ścieżkę, w której zainstalowano pyenv, i wyeksportować ją. Następnie dodaj $PYENV_ROOT/bin do PATH, aby uruchomić narzędzie wiersza poleceń pyenv jak każdą inną systemową komendę.
Musisz również włączyć shims i autouzupełnianie, dodając pyenv init do wiersza poleceń, aby móc przełączać się między wersjami Pythona «na żywo». Możesz dodać wszystkie konfiguracje za pomocą następującego polecenia:
echo -e "\n## pyenv configs\nexport PYENV_ROOT=\"\$HOME/.pyenv\"\nexport PATH=\"\$PYENV_ROOT/bin:\$PATH\"\n\nif command -v pyenv 1>/dev/null 2>&1; then\n eval \"\$(pyenv init -)\"\nfi" >> ~/.bashrc
## pyenv configs
export PYENV_ROOT=«$HOME/.pyenv»
export PATH=«$PYENV_ROOT/bin:$PATH»
if command -v pyenv 1>/dev/null 2>&1; then
eval «$(pyenv init -)»
fi
Po tym należy zastosować zmiany:
source ~/.bashrc
Teraz na poziomie powłoki bash użytkownika, z którego wykonano instalację, masz możliwość korzystania, instalowania i zmieniania wersji Pythona.
Na tym etapie można przejść bezpośrednio do instalacji potrzebnej wersji Pythona. Sprawdzić listę dostępnych wersji do instalacji można, wykonując następujące polecenie:
pyenv install -l
Można zainstalować wersje Pythona według następującego przykładu:
pyenv install 3.12.2
Następnie sprawdzamy, jakie wersje są już zainstalowane:
pyenv versions
Teraz mamy możliwość instalowania wersji Pythona dla każdego projektu osobno. W tym celu należy przejść do katalogu naszego projektu:
cd /path/to/project/
Teraz na poziomie powłoki poleceń należy zainstalować wersję Pythona, którą wcześniej zainstalowaliśmy za pomocą polecenia pyenv install :
pyenv local 3.10.3
Teraz należy sprawdzić, będąc w katalogu, czy wersja dla naszego projektu została poprawnie zainstalowana, za pomocą poleceń pyenv version lub python -V.
Podsumowanie
Rozważaliśmy 3 różne sposoby instalacji wersji Pythona na Linux. Najwygodniejszą metodą jest instalacja za pomocą menedżera pakietów systemowych, ponieważ instalacja odbywa się w 2-3 poleceniach, jednak gdy na serwerze mogą znajdować się różne aplikacje z różnymi wersjami - lepiej wybrać instalację za pomocą Pyenv. Ta metoda jest również zalecana przez społeczność Pythona, ponieważ każdą wersję można zainstalować jednym poleceniem i od razu zacząć jej używać.
W Zomro możesz wybrać serwer do wszelkich potrzeb i aplikacji.