opened image

პითონის ინსტალაცია Linux-ზე. რამდენიმე გზა

Python — ეს მრავალფუნქციური პროგრამირების ენაა, რომელიც შეესაბამება სხვადასხვა ამოცანების გადაწყვეტას, ვებსაიტების შექმნიდან მონაცემების ანალიზამდე. ის პოპულარულია დეველოპერების შორის თავისი სიმარტივისა და უნივერსალობის გამო.

ამ სტატიაში ჩვენ გაწვდით, როგორ უნდა დააყენოთ Python თქვენს Linux დისტრიბუციაზე.

 

ჩვენ განვიხილავთ Python-ის დაყენების სამ ვარიანტს:

  1. პაკეტების მენეჯერის საშუალებით — Python-ის დაყენების ყველაზე მარტივი და გავრცელებული მეთოდი. უმეტეს Linux დისტრიბუციებში უკვე არსებობს Python-ის პაკეტები მათი რეპოზიტორიუმებში.
  2. წყაროების კოდის საშუალებით — ეს მეთოდი უფრო მეტ მოქნილობას იძლევა, მაგრამ შეიძლება უფრო რთული აღმოჩნდეს.
  3. Python-ის პაკეტების მენეჯერის (pyenv) საშუალებით — ყველაზე კომფორტული მეთოდი, რომელიც დამატებით კონფიგურაციას მოითხოვს.

 

Python-ის ვერსიების შემოწმება

ჩვეულებრივ, უმეტეს Linux დისტრიბუციებში Python 3 ვერსია უკვე არის დაყენებული, როგორც სტანდარტული ვარიანტი. ჩვენ შეგვიძლია შევამოწმოთ მისი ვერსია შემდეგი ბრძანების საშუალებით, ტერმინალის გახსნით.

python3 --version

 

თუმცა, მოძველებულ ვერსიებზე დისტრიბუციებში შეიძლება იყოს Python 2 ვერსია, მისთვის ვიყენებთ ბრძანებას 

python --version

 

Python-ის დაყენება პაკეტების მენეჯერის საშუალებით

 

დაყენების წინ საჭიროა სისტემური პაკეტების და რეპოზიტორიუმების განახლება და აქ განვიხილავთ სხვადასხვა ვერსიებისთვის საკუთარი მეთოდები

Debian / Ubuntu

sudo apt update && sudo apt upgrade -y


RHEL (Fedora / Almalinux / RockyOS / CentOS)

 

sudo yum update -y

 

Ubuntu დისტრიბუციებისთვის ჩვენ მარტივად შეგვიძლია გავაფართოვოთ ხელმისაწვდომი ვერსიების სია, დაამატოთ deadsnakes რეპოზიტორი:

 

sudo add-apt-repository ppa:deadsnakes/ppa


Red Hat-ის (Fedora / Almalinux / RockyOS / CentOS) დისტრიბუციებისთვის მარტივად შეგვიძლია დავამატოთ EPEL (Extra Packages for Enterprise Linux) რეპოზიტორი:

sudo yum install epel-release -y

შემდეგ უნდა შევამოწმოთ, რომელი Python ვერსიები არის ხელმისაწვდომი დაყენებისთვის:

Debian / Ubuntu

sudo apt search python | grep ^python


RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum list available | grep ^python


 

თუ ჩვენ გვჭირდება კონკრეტული ვერსიის შეზღუდვა, უნდა შევიყვანოთ ბრძანება, მაგალითად (ვეძებთ ხელმისაწვდომია თუ არა python 3.8 ვერსია, რადგან 12 ვერსია უკვე გვაქვს დაყენებული)

 

Debian / Ubuntu

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


RHEL (Fedora / Almalinux / RockyOS / CentOS)

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

 

თუ სიაში არის საჭირო ვერსია, მაშინ მისი დაყენება შესაძლებელია ბრძანების საშუალებით

 

Debian / Ubuntu

sudo apt install python3.8


RHEL (Fedora / Almalinux / RockyOS / CentOS)

sudo yum install python3.8 -y

 

აქ მნიშვნელოვანია, უნდა ვუთხრათ თუ არა უმცროსი ვერსია წერტილით (python3.10) თუ გარეშე (python310), რაც დამოკიდებულია იმაზე, როგორ ეწოდება ვერსიის პაკეტი. ეს შეიძლება გაირკვეს წინა ბრძანებების შედეგებიდან, რომლებიც ჩვენ გამოვიყენეთ ხელმისაწვდომი ვერსიების შესამოწმებლად.

 

დაყენებული ინტერპრეტატორის ვერსიის მისაღებად უნდა ვუთხრათ მისი ნომერი და ვერსია ბრძანებაში:

 

python3.8 --version


 

Python-ის კომპილაცია წყაროების კოდიდან

 

Python-ის ვერსიის კომპილაციისთვის საჭიროა დამატებითი დამოკიდებულებების დაყენება. ვასრულებთ დაყენებას შემდეგი ბრძანებების საშუალებით:

 

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 «განვითარების ინსტრუმენტები»

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

 

Python-ის დაყენების პროცესში კომფორტისთვის, მოდით ვაწვდოთ ვერსიის ნომერი როგორც ცვლადი

 

Python-ის ხელმისაწვდომი ვერსიების სიის შემოწმება შეგიძლიათ ოფიციალურ ვებსაიტზე https://www.python.org/downloads/source/

 

უნდა ჩამოტვირთოთ და გაწვდოთ არქივი წყაროების კოდით, შემდეგ უნდა გადავიდეთ გაწვდილი დირექტორიაში, ხოლო იმისთვის, რომ დავამარტივოთ ჩვენი დავალება, შეგვიძლია გამოვიყენოთ სერვისი 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

 

ახლა ვუთხრათ კონფიგურაცია კომპილაციისთვის და დავიწყოთ კომპილაცია

 

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

ჩვენი Python-ის გამოყენების საჭიროებების მიხედვით, შეგიძლიათ დაამატოთ შემდეგი პარამეტრები ./configure ბრძანებას, რომელიც ჩვენ ზემოთ გამოვიყენეთ. ახლა წარმოგიდგენთ მაგალითებს, რაც შეგვიძლია დავამატოთ:

--prefix=/path/to/directory - მიუთითებს ინსტალაციის კატალოგს.

--enable-optimizations - ჩართავს ოპტიმიზაციას Python-ისთვის.

--enable-ipv6 - ჩართავს IPv6 ქსელების მხარდაჭერას.

--with-lto - ჩართავს Link-Time Optimization (LTO), რაც გააუმჯობესებს შესრულებას, მაგრამ შეიძლება გაზარდოს კომპილაციის დრო.

 

ყველა პარამეტრის, კონფიგურაციის შესახებ მეტი ინფორმაციის მისაღებად, უნდა შესრულდეს ბრძანება

 

./configure --help

 

შემდეგ შეგვიძლია დავამატოთ დამატებითი ინსტრუმენტები მუშაობისთვის

 

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


 

ამ კოდის გაწვდვის შემდეგ ჩვენ გვექნება კომპილაცია, რაც გარკვეულ დროს მოითხოვს, ხოლო შედეგით უნდა აღმოჩნდეთ ჩვენს დაყენებულ ვერსიაში


ახლა მნიშვნელოვანი ნაბიჯია, უნდა შევამოწმოთ Python-ის დაყენების სისწორე. ჩვენი დაყენებული ვერსიისთვის 3.9.20- ვამოწმებთ შემდეგი ბრძანებით:

 

python3.9 --version


თუ ყველაფერი სწორად მუშაობს, მაშინ უნდა წავშალოთ წყაროების კოდის ფაილები, რომლითაც ჩვენ გავაკეთეთ კომპილაცია, რადგან ისინი აღარ გვჭირდება:

 

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

 

არსებობს შემთხვევები, როდესაც კომპილაცია შეცდომით სრულდება. ამისათვის საჭიროა ხელახლა გავაკეთოთ დაყენება, მაგრამ ამჯერად ოპტიმიზაციის გარეშე. ამის წინ უნდა გავწმინდოთ დროებითი ფაილები, რომლებიც შექმნილია ჩვენი წინა კომპილაციის პროცესში:

 

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


 

Python-ის დაყენება pyenv-ის საშუალებით

 

თუ ზემოთ აღნიშნული მეთოდები არ გამოდგება, გირჩევთ სცადოთ pyenv, ის ძალიან კომფორტულია, თუ საჭიროა რამდენიმე პროექტზე მუშაობა, რომლებიც სხვადასხვა ინტერპრეტატორის ვერსიებს მოითხოვენ. ეს ვერსიების მენეჯერი საშუალებას გაძლევთ მარტივად გადართოთ ვერსიებს და იზოლირდეთ პროექტის დამოკიდებულებები.

 

pyenv-ის დაყენების წინ საჭიროა Python-ის კომპილაციისთვის საჭირო დამოკიდებულებების დაყენება, მათი დაყენების ბრძანებები უკვე ვიცით ამ სტატიიდან ზემოთ, მაგრამ უნდა დავამატოთ კიდევ git პაკეტი, რადგან pyenv-ს ჩამოვწერთ 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 «განვითარების ინსტრუმენტები»

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

 

შემდეგ ჩამოვწერთ pyenv-ის ბოლო ვერსიას GitHub-ის რეპოზიტორიდან და დავაყენებთ მას ~/.pyenv გზაზე:

 

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


ახლა უნდა დავაყენოთ გარემოს ცვლადი PYENV_ROOT, რათა მიუთითოს იმ გზაზე, სადაც pyenv დააყენეთ, და ექსპორტირება. შემდეგ დაამატეთ $PYENV_ROOT/bin PATH-ში, რათა pyenv-ის ბრძანების ხსნარი გაწვდოს როგორც ნებისმიერი სხვა სისტემური ბრძანება. 

 

თქვენ ასევე უნდა ჩართოთ shims და ავტომატური დასრულება, დაამატოთ pyenv init ბრძანების ხსნარში, რათა შეძლოთ Python-ის ვერსიების გადართვა «მალე». შეგიძლიათ დაამატოთ ყველა კონფიგურაცია შემდეგი ბრძანების საშუალებით:

 

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


ამის შემდეგ საჭიროა ცვლილებების გამოყენება:

 

source ~/.bashrc

 

ახლა bash მომხმარებლის დონეზე, რომლისგანაც შესრულდა დაყენება, გაქვთ შესაძლებლობა გამოიყენოთ, დააყენოთ და შეცვალოთ Python-ის ვერსიები.

 

ამ ეტაპზე შეგიძლიათ გადახვიდეთ უშუალოდ საჭირო Python ვერსიის დაყენებაზე. ხელმისაწვდომი ვერსიების სიის შესამოწმებლად შეგიძლიათ შეასრულოთ შემდეგი ბრძანება:

 

pyenv install -l


Python-ის ვერსიების დაყენება შეგიძლიათ შემდეგი მაგალითის მიხედვით:

 

pyenv install 3.12.2

 

 

შემდეგ ვამოწმებთ, რომელი ვერსიები უკვე არის დაყენებული:

 

pyenv versions


ახლა გვაქვს შესაძლებლობა დავაყენოთ Python-ის ვერსიები თითოეული პროექტისთვის ცალკე. ამისათვის უნდა გადავიდეთ ჩვენი პროექტის დირექტორიაში:

 

cd /path/to/project/

 

ახლა ბრძანების ხსნარში უნდა დავაყენოთ Python-ის ვერსია, რომელიც წინასწარ დავაყენეთ ბრძანების საშუალებით pyenv install :

 

pyenv local 3.10.3

 

ახლა უნდა შევამოწმოთ, ვართ თუ არა დირექტორიაში, სწორად იყო დაყენებული ვერსია ჩვენი პროექტისთვის, ბრძანებების საშუალებით pyenv version ან python -V.


შედეგი

ჩვენ განვიხილეთ Python-ის ვერსიების დაყენების 3 სხვადასხვა მეთოდი Linux-ზე. ყველაზე კომფორტული მეთოდი არის სისტემური პაკეტების მენეჯერის საშუალებით დაყენება, რადგან დაყენება 2-3 ბრძანებით ხდება, თუმცა როდესაც სერვერზე შეიძლება განთავსდეს სხვადასხვა აპლიკაციები სხვადასხვა ვერსიებით - უკეთესია pyenv-ის საშუალებით დაყენება. ეს მეთოდი რეკომენდირებულია Python-ის საზოგადოებასაც, რადგან ნებისმიერი ვერსია შეიძლება დაყენდეს ერთი ბრძანებით და მაშინვე დაიწყოს მისი გამოყენება.

 

Zomro-ში შეგიძლიათ აირჩიოთ სერვერი ნებისმიერი საჭიროების და ნებისმიერი აპლიკაციისთვის.