PIESLĒGTIES
    opened image

    Python — ir daudzfunkcionāla programmēšanas valoda, kas piemērota dažādu uzdevumu risināšanai, sākot no tīmekļa vietņu izveides līdz datu analīzei. Tā ir populāra starp izstrādātājiem, pateicoties tās vienkāršībai un universālajai pielietojamībai.

    Šajā rakstā mēs pastāstīsim, kā instalēt Python uz jūsu Linux izplatījuma.

     

    Mēs apskatīsim trīs Python instalēšanas iespējas:

    1. Izmantojot pakotņu pārvaldnieku — visvienkāršākais un izplatītākais Python instalēšanas veids. Lielākajā daļā Linux izplatījumu jau ir Python pakotnes to repozitorijos.
    2. No avota kodu — šī metode nodrošina lielāku elastību, bet var izrādīties sarežģītāka.
    3. Izmantojot Python pakotņu pārvaldnieku (pyenv) — visērtākais veids, kas prasa papildu iestatījumus.

     

    Python versiju pārbaude

    Parasti lielākajā daļā Linux izplatījumu jau ir instalēta Python 3 versija kā standarta opcija. Mēs varam pārbaudīt tās versiju, izmantojot sekojošo komandu, atverot termināli.

    python3 --version

     

    Tomēr novecojušos izplatījumos var būt instalēta Python 2 versija, tad izmantojam komandu 

    python --version

     

    Python instalēšana caur pakotņu pārvaldnieku

     

    Pirms instalēšanas ir nepieciešams atjaunināt sistēmas pakotnes un repozitorijus, un šeit apskatīsim dažādus veidus dažādām versijām

    Debian / Ubuntu

    sudo apt update && sudo apt upgrade -y


    RHEL (Fedora / Almalinux / RockyOS / CentOS)

     

    sudo yum update -y

     

    Ubuntu izplatījumiem mums ir viegli paplašināt pieejamo versiju sarakstu, pievienojot deadsnakes repozitoriju:

     

    sudo add-apt-repository ppa:deadsnakes/ppa


    Red Hat (Fedora / Almalinux / RockyOS / CentOS) izplatījumiem ir viegli pievienot EPEL (Extra Packages for Enterprise Linux) repozitoriju:

    sudo yum install epel-release -y

    Tālāk mums jāpārbauda, kādas Python versijas ir pieejamas instalēšanai:

    Debian / Ubuntu

    sudo apt search python | grep ^python


    RHEL (Fedora / Almalinux / RockyOS / CentOS)

    sudo yum list available | grep ^python


     

    Lai ierobežotu nepieciešamo versiju, ir jāievada komanda, piemēram (meklējam, vai pieejama python 3.8 versija, jo 12. versija mums jau ir instalēta)

     

    Debian / Ubuntu

    sudo apt-cache search python | grep -E ^python3?\.8


    RHEL (Fedora / Almalinux / RockyOS / CentOS)

    sudo yum list available | grep -E ^python3?\.8

     

    Ja sarakstā ir nepieciešamā versija, to var instalēt, izmantojot komandu

     

    Debian / Ubuntu

    sudo apt install python3.8


    RHEL (Fedora / Almalinux / RockyOS / CentOS)

    sudo yum install python3.8 -y

     

    Šeit ir svarīgs moments, proti, vai jānorāda mazā versija ar punktu (python3.10) vai bez (python310), atkarīgs no tā, kā sauc pakotni versijai. To var uzzināt no iepriekšējo komandu izpildes rezultātiem, kuras mēs izmantojām, lai pārbaudītu pieejamās versijas instalēšanai.

     

    Lai piekļūtu instalētajai interpretatora versijai, ir jānorāda tās numurs un versija komandā:

     

    python3.8 --version


     

    Python kompilācija no avota koda

     

    Python versijas kompilācijai no avota koda ir nepieciešama papildu atkarību instalācija. Veicam instalāciju ar sekojošām komandām:

     

    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 «Izstrādes rīki»

    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

     

    Lai atvieglotu turpmāko darbu ar Python instalāciju komandrindas mainīgajos, nosakām versijas numuru kā mainīgo

     

    Pārbaudīt pieejamo Python versiju sarakstu var oficiālajā vietnē https://www.python.org/downloads/source/

     

    Jālejuplādē un jāizpako arhīvs ar avota kodu, pēc tam jāpāriet uz izpakoto direktoriju, un, lai atvieglotu uzdevumu, varam izmantot servisu 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

     

    Tagad norādām konfigurāciju kompilācijai un uzsākam kompilāciju

     

    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

    Atkarībā no mūsu Python lietošanas vajadzībām varam pievienot sekojošas opcijas komandai ./configure, kuru mēs izmantojām iepriekš. Tagad sniegsim piemērus tam, ko varam pievienot:

    --prefix=/path/to/directory - Norāda instalācijas katalogu.

    --enable-optimizations - Iekļauj optimizāciju Python.

    --enable-ipv6 - Iekļauj IPv6 tīklu atbalstu.

    --with-lto - Iekļauj Link-Time Optimization (LTO), kas uzlabos veiktspēju, bet var palielināt kompilācijas laiku.

     

    Lai uzzinātu vairāk par visām opcijām, konfigurāciju, ir jāizpilda komanda

     

    ./configure --help

     

    Tālāk varam pievienot papildu rīkus darbam

     

    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


     

    Šī koda izpildes rezultātā notiks kompilācija, kas aizņems kādu laiku, un rezultātā mums jānonāk mūsu instalētās versijas direktorijā


    Tagad ir svarīgs solis, proti, jāpārbauda Python instalācijas pareizība. Mūsu instalētajai versijai 3.9.20 - pārbaudām ar sekojošo komandu:

     

    python3.9 --version


    Ja viss darbojas pareizi, tad jāizdzēš avota koda faili, no kuriem mēs veicām kompilāciju, jo tie mums vairs nav nepieciešami:

     

    rm -rf /tmp/Python-3.9.20 /tmp/Python-3.9.20.tar.gz

     

    Ir gadījumi, kad kompilācija beidzas ar kļūdām. Tādā gadījumā ir jāveic atkārtota instalācija, bet šoreiz bez optimizācijas. Pirms tam ir jāveic pagaidu failu tīrīšana, kas tika izveidoti mūsu iepriekšējās kompilācijas procesā:

     

    sudo make clean; ./configure; sudo make -j «$(nproc)»; sudo make install


     

    Python instalēšana caur pyenv

     

    Ja iepriekš minētās metodes mums nepiemērojas, tad iesakām izmēģināt pyenv, tas ir ļoti ērti, ja nepieciešams strādāt pie vairākiem projektiem, kuriem nepieciešamas dažādas interpretatora versijas. Šis versiju pārvaldnieks ļauj viegli pārslēgties starp versijām un izolēt projekta atkarības.

     

    Pirms pyenv instalēšanas ir jāinstalē atkarības, kas nepieciešamas Python kompilācijai, komandas to instalēšanai mums jau ir zināmas no šī raksta iepriekš, bet būs jāpieprasa arī git pakotne, jo pyenv lejupielādēsim no git repozitorija

     

    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 «Izstrādes rīki»

    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

     

    Tālāk lejupielādējam jaunāko pyenv avota kodu no repozitorija uz Github un instalējam to ceļā ~/.pyenv :

     

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv


    Tagad ir jāiestata vides mainīgais PYENV_ROOT, lai tas norādītu uz ceļu, kur jūs instalējāt pyenv, un jāeksportē tas. Pēc tam pievienojiet $PYENV_ROOT/bin PATH, lai palaistu pyenv komandrindas utilītu kā jebkuru citu sistēmas komandu. 

     

    Jums arī jāieslēdz shims un automātiskā pabeigšana, pievienojot pyenv init komandrindai, lai varētu pārslēgties starp Python versijām «uz vietas». Jūs varat pievienot visas konfigurācijas, izmantojot sekojošo komandu:

     

    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


    Pēc tam ir jāpiemēro izmaiņas:

     

    source ~/.bashrc

     

    Tagad jūsu lietotāja bash līmenī, no kura tika veikta instalācija, ir iespēja izmantot, instalēt un mainīt Python versijas.

     

    Šajā posmā varat pāriet tieši uz nepieciešamās Python versijas instalēšanu. Pārbaudīt pieejamo instalēšanai versiju sarakstu var, izpildot sekojošo komandu:

     

    pyenv install -l


    Python versijas var instalēt pēc sekojoša parauga:

     

    pyenv install 3.12.2

     

     

    Tad pārbaudām, kādas versijas jau ir instalētas:

     

    pyenv versions


    Tagad mums ir iespēja instalēt Python versijas katram projektam atsevišķi. Lai to izdarītu, ir jāieiet mūsu projekta direktorijā:

     

    cd /path/to/project/

     

    Tagad komandrindas līmenī ir jāinstalē Python versija, kuru mēs iepriekš instalējām, izmantojot komandu pyenv install :

     

    pyenv local 3.10.3

     

    Tagad ir jānoskaidro, vai, atrodoties direktorijā, versija mūsu projektam ir pareizi instalēta, izmantojot komandas pyenv version vai python -V.


    Secinājums

    Mēs apskatījām 3 dažādus veidus, kā instalēt Python versijas Linux. Visērtākais ir instalācijas veids caur sistēmas pakotņu pārvaldnieku, jo instalācija notiek 2-3 komandās, tomēr, ja serverī var atrasties dažādas lietojumprogrammas ar dažādām versijām - labāk izvēlēties instalāciju caur Pyenv. Šo metodi iesaka arī Python kopiena, jo jebkuru versiju var instalēt ar vienu komandu un uzreiz sākt to izmantot.

     

    Zomro jūs varat izvēlēties serveri jebkurām vajadzībām un jebkurām lietojumprogrammām.