Мы обсуждаем, как настроить среду разработки 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
- Включить домашнюю службу
- Включить 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
Существующая установка 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. Я буду продолжать работать над этой целью, я сделаю еще один пост после того, как узнаю, как это сделать, и сделаю это успешно.
Спасибо за чтение, и я надеюсь, что вы найдете этот пост полезным.