Synology DS218: подготовка среды разработки Python 3.9 Beta compelete devepment environment.

Мы обсуждаем, как настроить среду разработки Python 3.9 Beta на
Synology DS218 DiskStation под управлением DSM версии 7.1-42661 Update 1. На сайте
среда разработки включает в себя: pip, virtualenv, setuptools, wheel
и веб-сервер разработки flask.

Synology DS218: подготовка среды разработки Python 3.9 Beta compelete.

Synology DS218 DiskStation – универсальное сетевое хранилище с двумя отсеками для малых офисов и домашних пользователей – это Linux устройство. Он работает под управлениемдистрибутив Linux под названиемDSMи на моем устройстве установлена версия7.1-42661 Update 1.

Существует так много различныхLinux вкусов. Во время изучения этой темы я понял, что столкнусь с некоторыми трудностями. И я так и сделал. Я не нашел полного руководства о том, как это сделать, шаги, которые работают для меня и которые я собрал в этом посте, взяты из нескольких других существующих постов, я перечисляю те посты, на которые ссылался по пути.

Я хотел бы упомянуть, что, следуя инструкциям в этом постеКак использовать Synology Web Station?PHP-порт виртуальный сайт, размещенный наApache 2.4 запустился менее чем за 30 (тридцать) минут – и я могу получить доступ к нему с моейWindows 10 машины.Pythonпочему-то не так прост.

Оглавление

  • Определение IP-адреса сетевого хранилища Synology
  • Включить домашнюю службу
  • Включить SSH
  • SSH к DSM из Windows 10
  • Существующая установка Python
  • Установите Web Station и Python 3.9 Beta
    • Установите Web Station
    • Установить Python 3.9 Beta
  • Где установлен Python 3.9 Beta, как его вызвать?
  • Установите pip, обновите pip и проверьте, установлен ли pip.
    • Установите pip
    • Обновить pip
    • Проверить, что pip установлен
  • Проверка версии pip
  • Обновление пакетов setuptools и wheel
  • Установите virtualenv и проверьте установку
    • Установите virtualenv
    • Проверка установки virtualenv
  • Создайте виртуальную среду venv
  • Активация и деактивация виртуальной среды venv
    • Активируйте виртуальную среду venv
    • Деактивируйте виртуальную среду venv
  • Тестовое приложение
    • Установите необходимые пакеты
    • Завершите создание тестового приложения
    • Запустите тестовое приложение
  • Заключительные замечания

Определение IP-адреса сетевого хранилища Synology

Перейдите в Панель управления > Сеть > вкладка Сетевой интерфейс:найдите раздел LAN.

У меня 192.168.0.6 — и я буду ссылаться на него в этом посте.

Включите домашнюю службу

Домашняя служба означает домашний каталог пользователя.

“behai” это пользователь, которого я установил при первой установкеDSM. Это не пользователь root.

Перейдите в Control Panel > User & Group > выберите behai > Advanced tab:

Проверьте “Включить домашнюю службу пользователя”, затем нажмите“Применить”.

Включите SSH

Перейдите в Панель управления > Терминал & SNMP > вкладка Терминал:

Проверьте “Включить службу SSH”, затем нажмите“Применить”.

SSH к DSM из Windows 10

Из командной строки Windowsтеперь мы должны иметь доступ кDSM командной строке черезSSH, используя:

ssh behai@192.168.0.6
Войти в полноэкранный режим Выйти из полноэкранного режима

Он попросит ввести пароль, это тот же пароль, который мы используем для входа в устройство.

После входа в системуSSH терминал, выполните обе команды:

$ echo $HOME
$ pwd
Войти в полноэкранный режим Выйти из полноэкранного режима

вернут одно и то же значение, которое является домашним каталогом:

/var/services/homes/behai
Enter fullscreen mode Выйти из полноэкранного режима

Существующая установка Python

С сайта Центр пакетов по адресу Установленныеон показывает Python2 поставляется предустановленным (когда мы впервые установили
DSM ).

Но и то и другое:

$ python
$ python3
Войти в полноэкранный режим Выход из полноэкранного режима

показать Python 3.8.12, пожалуйста, посмотрите снимок экрана ниже:

Установка Web Station и Python 3.9 Beta

Я думал, что мне понадобится Web Stationоднако, оглядываясь назад, я думаю, что на данном этапе мне не нужна Web Station. Web Station но я установил ее. Поэтому я просто продолжу и включу этот шаг в этот пост.

Установка Web Station

Для начала я следую инструкциям в статье “Как использовать Synology Web Station? Web Station, PHP 8.0установитеPHP-порт виртуальный сайт, размещенный на Apache 2.4и я смог запустить этот виртуальный сайт менее чем за 30 (тридцать) минут – и я могу получить доступ к нему с моего Windows 10 машины.

В принципе, используйтеЦентр пакетов для установкиWeb Station. В результате установки будет создан корневой каталог Web:

/volume1/web/
Войти в полноэкранный режим Выход из полноэкранного режима

Файловая станция также видит этот каталог.

Установите Python 3.9 Beta

На этом этапе я подумал, что аналогичноPHPмне нужно будет выполнить тот же процесс дляPython:

Перейдите в Главное меню > Web Station > Script Language Settings > Python tab -пожалуйста, смотрите снимок экрана ниже:

Python 3.8.12 был установлен, но он все еще говорит, что нетPython 3 пакет. Используйте Центр пакетов для установки Python 3.9 Beta. Нажмите на“Присоединиться к бета-версии” для установки. См. снимок экрана ниже:

После этого пользовательский индивидуальный профиль для Python 3.9 должен появиться в разделе Веб-станция‘s Настройки языка сценариев.

Где установлен Python 3.9 Beta, как его вызвать?

Этот пост Переустановка пакетов pip и virtualenv Site после обновления Package Center Python 3.8.2, немного устарел (я думаю), но он помог мне выяснить где Python 3.9 установлен:

/volume1/@appstore/Python3.9/usr/bin/python3.9
Вход в полноэкранный режим Выйти из полноэкранного режима

На самом деле:

/volume1/@appstore/Python3.9/usr/bin/ 
Войти в полноэкранный режим Выйти из полноэкранного режима

именно здесь Python 3.9 связанные с ним инструменты. Этот путь распознается системой. Команда:

$ python3.9
Войти в полноэкранный режим Выйти из полноэкранного режима

должна быть просто запущена.

Установка pip, обновление pip и проверка того, что pip был установлен

Установите pip

Я пробовал различные инструкции, они не сработали. Это https://jackgruber.github.io/2021-06-27-install-pip-on-synology/post работает. Я перешел на python3.9:

$ sudo python3.9 -m ensurepip
Войти в полноэкранный режим Выход из полноэкранного режима

Пожалуйста, посмотрите следующий снимок экрана:

Что касается предупреждения:

ПРЕДУПРЕЖДЕНИЕ: Запуск pip от имени пользователя ‘root’ может привести к нарушению прав доступа и конфликту с системным менеджером пакетов. Вместо этого рекомендуется использовать виртуальную среду: https://pip.pypa.io/warnings/venv.

Я пока не знаю, что это значит. Что касается предупреждения:

ПРЕДУПРЕЖДЕНИЕ: Скрипты pip3 и pip3.9 установлены в ‘/var/packages/Python3.9/target/usr/bin’, который отсутствует в PATH.
Подумайте о добавлении этого каталога в PATH или, если вы предпочитаете подавить это предупреждение, используйте –no-warn-script-location.

Я пока не предпринимал никаких действий… Изначально я буду использовать полный путь.

Обновление pip

Чтобы обновить pip, я выполнил следующую команду:

$ sudo python3.9 -m pip install --upgrade pip
Войти в полноэкранный режим Выйти из полноэкранного режима

Я также пока просто сплю на предупреждениях, пока что-нибудь не перестанет работать.

Убедитесь, что pip был установлен

Используя уже упомянутый пост Переустановка пакетов pip и virtualenv Site после обновления Package Center Python 3.8.2, следующая команда проверяет, что pip существует:

$ ls -l /volume1/@appstore/Python3.9/usr/lib/python3.9/site-packages
Войти в полноэкранный режим Выход из полноэкранного режима

pip, pip3, pip3.9 и pip3.10 также существуют:

$ ls -l /volume1/@appstore/Python3.9/usr/bin
Вход в полноэкранный режим Выход из полноэкранного режима

Проверка версии pip

**Я ПРОВЕРЯЛ РАЗНЫЕ КОМАНДЫ, но ни одна не сработала. В настоящее время я не знаю, как это сделать**. Я опубликую обновление после того, как разберусь с этим.

Обновление пакетов setuptools и wheel

Выполните эту команду:

$ sudo python3.9 -m pip install --upgrade pip setuptools wheel
Войти в полноэкранный режим Выйти из полноэкранного режима

Я включил pipчто было излишним, так как это уже было сделано.

Установите virtualenv и проверьте установку

Установите virtualenv

Выполните эту команду:

$ sudo /volume1/@appstore/Python3.9/usr/bin/python3.9 -m pip install virtualenv
Войдите в полноэкранный режим Выйти из полноэкранного режима

Я включил полный путь для python3.9что, на мой взгляд, не является необходимым.

Убедитесь, что virtualenv был установлен

Чтобы проверить, выполните эту команду:

$ ls /volume1/@appstore/Python3.9/usr/lib/python3.9/site-packages
Войти в полноэкранный режим Выйти из полноэкранного режима

Смотрите снимок экрана ниже, virtualenv был установлен:

На странице bin находится каталог, в котором хранятся соответствующие исполняемые файлы:

$ ls -l /volume1/@appstore/Python3.9/usr/bin/
Войти в полноэкранный режим Выйти из полноэкранного режима

Вывод показан на снимке экрана ниже:

Создайте виртуальную среду venv

По адресу $HOME, т.е. /var/services/homes/behai/ каталог, создайте каталог app_demo с помощью команды:

$ mkdir app_demo
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем перейдите в эту директорию:

$ cd app_demo
Войти в полноэкранный режим Выйти из полноэкранного режима

Выполните следующую команду для создания виртуальной среды venv:

$ sudo /volume1/@appstore/Python3.9/usr/bin/virtualenv -p python3.9 venv
Войти в полноэкранный режим Выход из полноэкранного режима

Проверьте созданную среду venv:

$ ls -l venv/
Войти в полноэкранный режим Выйти из полноэкранного режима

Проверьте venv/bin каталог:

$ ls -l venv/bin/
Войти в полноэкранный режим Выйти из полноэкранного режима

— Мы также можем посмотреть содержимое этих каталогов, используя File Station.

Выполнение этих команд показано на снимке экрана ниже:

Обратите внимание, что в Windows, venvScripts является эквивалентом venv/bin.

Активация и деактивация виртуальной среды venv

Активация виртуальной среды venv

Чтобы активировать, выполните команду :

$ source venv/bin/activate
Войти в полноэкранный режим Выйти из полноэкранного режима

Подсказка изменится, как показано на снимке экрана ниже:

Деактивировать виртуальную среду venv

**Я ПОКА НЕ ЗНАЮ, КАК ЕЕ ДЕАКТИВИРОВАТЬ. Я не уверен, для чего нужен venv/bin/deactivate.nu. Я также не могу найти информацию об этом**. Я просто завершаю SSH сеанс, снова захожу, и все работает.

Тестовое приложение

Эта часть похожа на Python: Установка приложения (самостоятельно), сборка дистрибутива и тестирование собранного дистрибутива. , которую я написал для Windows 10.

Установите необходимые пакеты

По адресу /var/services/homes/behai/app_demo, создайте setup.py файл и src/ каталог.

/var/services/homes/behai/app_demo
|
|-- setup.py
|
|-- src/
Вход в полноэкранный режим Выход из полноэкранного режима
File /var/services/homes/behai/app_demo/setup.py
Войти в полноэкранный режим Выход из полноэкранного режима
"""Installation script for flask_restx demo project."""
from pathlib import Path
from setuptools import setup, find_packages

setup(
    name='dsm-python-demo',
    description='flask dev server on Synology DSM demo.',
    version='1.0.0',
    author='Van Be Hai Nguyen',
    author_email='behai_nguyen@hotmail.com',
    packages=find_packages(where="src"),
    package_dir={"": "src"},
    python_requires='>=3.9',
    install_requires=[
        'Flask',
        'python-dotenv',
    ],
)
Вход в полноэкранный режим Выход из полноэкранного режима

Выполните приведенную ниже команду, чтобы установить пакеты для тестового приложения, которое мы собираемся написать:

$ sudo venv/bin/pip install -e .
Войти в полноэкранный режим Выйти из полноэкранного режима

Это должно запуститься без проблем. После завершения используйте File Station для сканирования каталогов, чтобы убедиться, что у нас установлены указанные пакеты.

Завершите работу тестового приложения

Обновлено 21/07/2022 — код можно клонировать с GitHub использование:

git clone -b v1.0.0 https://github.com/behai-nguyen/app-demo.git
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь создайте остальную часть приложения:

/var/services/homes/behai/app_demo/
|
|-- .env
|-- app.py
|-- setup.py
|
|-- src/
|   |
|   |-- app_demo/
|       |   
|       |-- __init__.py
|       |-- config.py
|
|-- venv/
Войти в полноэкранный режим Выйти из полноэкранного режима
File /var/services/homes/behai/app_demo/.env
Войти в полноэкранный режим Выйти из полноэкранного режима
FLASK_APP=app.py
FLASK_ENV=development
SECRET_KEY=">s3g;?uV^K=`!(3.#ms_cdfy<c4ty%"
Войти в полноэкранный режим Выход из полноэкранного режима
File /var/services/homes/behai/app_demo/app.py
Войти в полноэкранный режим Выход из полноэкранного режима
"""Flask Application entry point."""

from app_demo import create_app

app = create_app()
Войти в полноэкранный режим Выход из полноэкранного режима
File /var/services/homes/behai/app_demo/src/app_demo/__init__.py
Войти в полноэкранный режим Выход из полноэкранного режима
"""Flask app initialization via factory pattern."""
from flask import Flask

from app_demo.config import get_config

def create_app():
    app = Flask( 'dsm-python-demo' )

    app.config.from_object( get_config() )

    @app.route( '/' )
    def hello_world():
        return '<p>Hello, World!</p>'

    return app
Войти в полноэкранный режим Выход из полноэкранного режима
File /var/services/homes/behai/app_demo/src/app_demo/config.py
Войти в полноэкранный режим Выход из полноэкранного режима
"""Flask app config settings."""
import os

class Config:
    """Set Flask configuration from .env file."""

    # General Config
    SECRET_KEY = os.getenv( 'SECRET_KEY' )
    FLASK_APP = os.getenv( 'FLASK_APP' )
    FLASK_ENV = os.getenv( 'FLASK_ENV' )

def get_config():
    """Retrieve environment configuration settings."""
    return Config
Войти в полноэкранный режим Выход из полноэкранного режима

Запустите тестовое приложение

Запустите его:

$ sudo venv/bin/flask run --host=0.0.0.0 --port=9090
Войти в полноэкранный режим Выйти из полноэкранного режима

С сайта Windowsоткройте этот URL http://192.168.0.6:9090/:

Приложение отвечает, как и ожидалось:

Вспомните, что 192.168.0.6 это адрес моего сетевого хранилища Synology.

Заключительные замечания

Это было интересное упражнение. Я многому научился на этом пути. Что я действительно хочу достичь, так это получить DSM Apache 2.4 веб-сервер для размещенияPython веб-приложений аналогично тому, как это делается в Internet Information Services (IIS) — что я уже сделал и описал в Python: размещение приложения virtualenv Flask в Internet Information Services (IIS) Windows 10 Pro. Я буду продолжать работать над этой целью, я сделаю еще один пост после того, как узнаю, как это сделать, и сделаю это успешно.

Спасибо за чтение, и я надеюсь, что вы найдете этот пост полезным.

Оцените статью
Procodings.ru
Добавить комментарий