შესვლა
    opened image

    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-ში შეგიძლიათ აირჩიოთ სერვერი ნებისმიერი საჭიროების და ნებისმიერი აპლიკაციისთვის.