Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Где настраивается python-script-service

Для более удобного взаимодействия с файловой системой контейнера была создана точка монтирования, позволяющая загружать внутрь него файлы, а также сохранять их между перезапусками контейнера.

Путь к точке монтирования на хосте:

/var/lib/docker/volumes/start-script.sh/visiology3_python-script-service-3_data/

Путь к точке монтирования в контейнере:

/mnt/volume

Стартовый скрипт start-script.sh находится в корне примонтированной директории и выполняется каждый раз при запуске контейнера с сервисом. В него можно добавить необходимые вам команды, такие, как загрузка и установка пакетов, выполнение скриптов и прочее.

Файл конфигураций config.json также находится в корне примонтированной директории. В нем можно настроить путь до интерпретатора Python (см. ниже).

Выполнение настроек

После первого запуска контейнера python-script-service сервиса в папке /docker-volume/python-script-service сервиса будет создан файл start-script.sh – это файл скрипта, который будет запускаться при запуске контейнера. В нём может быть написана логика настраивающая контейнер, может быть установлен нужный интерпретатор python Python и установлены нужные пакеты.

Настройка пути до интерпретатора

...

Python

Чтобы настроить путь до интерпретатора pythonPython, который будет вызывать сервис, есть несколько вариантов (перечислены в порядке увеличения приоритета от меньшего к большему):

...

Например, можно использовать offline-репозиторий: https://help.ubuntu.com/community/AptGet/Offline/Repository/.

А для установки pythonPython-пакетов без интернета, использовать wheel: https://dizballanze.com/ru/python-wheels-dlia-bystroi-ustanovki-zavisimostei/.

Также возможна установка напрямую из исходного кода: https://www.tecmint.com/install-python-in-linux/.

Установка библиотек для Python без доступа в интернет

  1. На компьютере с доступом в интернет установить Python той же версии, что и на ВМ.

  2. Заполнить файл requirements.txt с необходимыми библиотеками. Пример файла requirements.txt:

    Блок кода
    requests==2.31.0
    setuptools==59.2.0
    wheel==0.37.0
  3. Загрузить необходимые пакеты в указанную папку:

    Блок кода
    pip3 download -r ./requirements.txt --dest /mnt/volume/packages
  4. Добавить в скрипт start-script.sh команду оффлайн-установки пакетов из указанной папки:

    Блок кода
    pip3 install --no-index --find-links=/mnt/volume/packages -r /mnt/volume/requirements.txt
  5. Перезапустить платформу.

Итоговый вариант скрипта start-script.sh с оффлайн-установкой библиотек:

Блок кода
#!/bin/sh

current_path=$(pwd)

# Установка Python 3.8.16 из скачанных ранее исходников
apk add make
cd /mnt/volume/Python-3.8.16
./configure --enable-optimizations
make
make install

# Установка пакетов из скачанных ранее файлов
pip3 install --no-index --find-links=/mnt/volume/packages -r /mnt/volume/requirements.txt

# Возврат в папку выполнения сервиса скриптов
cd $current_path

Вариант скрипта для Red OS:

Блок кода
#!/bin/sh

current_path=$(pwd)

# Установка Python 3.8.16 из скачанных ранее исходников
dnf add make
cd /mnt/volume/Python-3.8.16
./configure --enable-optimizations
make
make install

# Установка пакетов из скачанных ранее файлов
pip3 install --no-index --find-links=/mnt/volume/packages -r /mnt/volume/requirements.txt

# Возврат в папку выполнения сервиса скриптов
cd $current_path

Скрипт для проверки используемой версии Python:

Блок кода
import sys
print(sys.version)

Какой способ установки выбрать?

У вас есть несколько способов развернуть нужное вам программное обеспечение в сервисе выполнения скриптов, выбирайте тот способ, который вам будет проще использовать в вашей конкретной ситуации, нельзя дать однозначную рекомендацию, какой способ использовать, так как в каждом конкретном случае могут быть свои нюансы, которые могут повлиять на выбор. Если вы не знаете какой способ выбрать, то ниже даны наши рекомендации.

Необходимо установить

...

Python-пакет

Скорее всего самым простым способом установить pythonPython-пакет будет способ установки с использованием wheel – выбирайте его тогда, когда этот пакет можно поставить с использованием pip. Поищите этот пакет на сайте: сайте https://pypi.org/ или или информацию об установке через pip на странице этого пакета, а дальше посмотрите пример установки pytorch через wheel и затем адаптируйте инструкцию к установке того конкретного пакета, который вам нужно установить. Важным нюансом установки через wheel является то, что вам нужно выяснить полный список пакетов, от которых зависит пакет, который вы ставите и явно прописать этот список в файл requirements.txt. Чтобы выяснить этот список, вы можете, например, установить нужный вам пакет через pip на свежеустановленной операционной системе такой же, какая используется сейчас в сервисе выполнения скриптов (на данный момент это Ubuntu Bionic) и посмотреть какие пакеты дополнительно при этом ставятся.

...

Если в репозитории он тоже отсутствует, то остаётся способ установки с использованием исходного кода – идите на страничку нужного вам пакета и ищите инструкцию по установке из исходников, если инструкции там нет, то нужно поискать эту инструкцию с использованием какого-либо поисковика, например google.com.

Необходимо установить

...

Python-интерпретатор

Рекомендуем установку из исходников, пример установки интерпретатора python Python приводится ниже.

Установка Python-интерпретатора

...

Находим ссылку на исходники нужной нам версии python: https://www.python.org/downloads/release/.

Я буду устанавливать версию 3.7.5: https://www.python.org/

  1. Найти и скачать нужный архив с Python. Архивы можно найти на сайте Index of /ftp/python/

...

  1. . Скачать архив можно вручную, либо следующей командой:

    Блок кода
    wget https://www.python.org/ftp/python/3.

...

  1. 8.

...

  1. 16/Python-3.

...

  1. 8.

...

  1. 16.tar.xz

...

  1. В инструкции для примера будет использована версия Python 3.8.16. Ее можно изменить на нужную вам.

  2. Если на ВМ отсутствует доступ к сети Интернет, можно выполнить шаг 1 там, где доступ есть, и переместить скачанный файл на ВМ.

  3. Распаковать архив:

    Блок кода
    tar xJf Python-3.

...

  1. 8.

...

  1. 16.tar.xz

...

  1. Отредактировать файл /var/lib/docker/volumes/start-script.sh/visiology3_python-script-service-3_data/_data/start-script.sh, вставив следующее содержимое:

    Блок кода
    #!/bin/sh
    
    current_path=$(pwd)
    
    # Установка Python 3.8.16 из скачанных ранее исходников
    apk add make
    cd /mnt/volume/Python-3.8.

...

  1. 16
    .

...

  1. /configure --enable-optimizations
    make

...

  1. 
    make install
    
    # Установка пакетов, указанных в requirements.txt
    pip3 install -r /mnt/volume/

...

  1. requirements.txt
    
    # Возврат в папку выполнения сервиса скриптов
    cd $current_path

    Вариант скрипта для Red OS:

    Блок кода
    #!/bin/sh
    
    current_path=$(pwd)
    
    # Установка Python 3.8.16 из скачанных ранее исходников
    dnf add make
    cd /mnt/volume/Python-3.

...

Теперь при старте docker-контейнера будет установлен интерпретатор python 3.7.5.

Обратите внимание, что для того, чтобы сервис использовал его, необходимо в config.json сервиса выполнения скриптов написать путь до нового установленного интерпретатора: "/usr/local/bin/python3".

Скрипт для проверки используемой версии python:

...

  1. 8.16
    ./configure --enable-optimizations
    make
    make install
    
    # Установка пакетов, указанных в requirements.txt
    pip3 install -r /mnt/volume/requirements.txt
    
    # Возврат в папку выполнения сервиса скриптов
    cd $current_path
  2. Перезапустить платформу.

Установка пакета pytorch для интерпретатора

...

Python 2.7 с использованием wheel

  1. Работы происходят на машине, имеющей доступ к интернету 

1.1 Устанавливаем pythonPython, pip и wheel:

Блок кода
# apt-get update && apt-get install -y python-pip
# pip install wheel

...

Блок кода
import torch
result = torch.cuda.is_available()

Установка пакета pytorch для интерпретатора

...

Python 3.6 с использованием wheel

На машине имеющий доступ к интернету устанавливаем python Python 3, pip и wheel.

Блок кода
apt-get update && apt-get install -y python3-pip
pip3 install wheel

На сайте pytorch смотрим, как установить его через pip: https://pytorch.org/get-started/locally/#start-locally.

Для python Python 3 нужно выполнить команду: 

...