Python — ეს მრავალფუნქციური პროგრამირების ენაა, რომელიც შეესაბამება სხვადასხვა ამოცანების გადაწყვეტას, ვებსაიტების შექმნიდან მონაცემების ანალიზამდე. ის პოპულარულია დეველოპერების შორის თავისი სიმარტივისა და უნივერსალობის გამო.
ამ სტატიაში ჩვენ გაწვდით, როგორ უნდა დააყენოთ Python თქვენს Linux დისტრიბუციაზე.
ჩვენ განვიხილავთ Python-ის დაყენების სამ ვარიანტს:
- პაკეტების მენეჯერის საშუალებით — Python-ის დაყენების ყველაზე მარტივი და გავრცელებული მეთოდი. უმეტეს Linux დისტრიბუციებში უკვე არსებობს Python-ის პაკეტები მათი რეპოზიტორიუმებში.
- წყაროების კოდის საშუალებით — ეს მეთოდი უფრო მეტ მოქნილობას იძლევა, მაგრამ შეიძლება უფრო რთული აღმოჩნდეს.
- 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-ში შეგიძლიათ აირჩიოთ სერვერი ნებისმიერი საჭიროების და ნებისმიერი აპლიკაციისთვის.