opened image

Python uzstādīšana Linux. Daži veidi

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.