SynologyがDSM7へアップグレードしましたが、DSM6の時に作ったPythonの環境はどこへ行ったのか分からなくなってしまった感じで困っていました。
新たにpipでライブラリをインストールしたいのだけど、どうすればいいのかな?と思っていると、Dockerなるもので解決できるようです。
(最近、分かりましたが、Docker利用しなくてもPythonの環境構築できました。別の記事に書いておきます。)
Dockerは仮想環境ということです。
なので、追加したり削除したりがやりやすいということですね。
確かにその辺りは簡単に行えましたね。
なので、環境の再構築とかも簡単に行るので、是非、気軽に試してみると良さそうです。
自分のイメージでは、標準でPython3がインストールされている訳ですが、pipでライブラリを追加したりが分からないので、Dockerで肩代わりできる感じです。
結構、適当に設定しましたが、動作するようなので、書いて残しておきましょう。
1.Dockerのインストールと設定
まず、パッケージセンターからDockerをインストールします。
上記はインストールした後の画面ですね。
インストールするとこんな感じの画面になります。
左の①レジストリを押して、右上の検索窓に②「python」を入力すると、pythonが出て来るので、③ダブルクリックします。
すると、「Latest」と表示されていますが、右の下ボタンをクリックすると、インストールしたいバージョンを選択できます。
自分はそのまま「Latest」(最新バージョンのこと)を選択しました。
するとパッケージのダウンロードが始まります。
上記がダウンロード中の画面です。
ファイルサイズがどんどん大きくなっていきますよ。
今回のPythonは922MBの大きさだったようです。
で、①ダウンロードが終了したpython:latestを選択します。
すると、左上の②起動ボタンが有効になりますので押します。
上記のまま「次へ」を押します。
上記のまま「次へ」を押します。
ここは好みですが、自分は仮想環境がCPUを大きく占有するのはこのましくないので、優先度は低くして、メモリも8GB程度にしました。
とはいえ、高権限実行コンテナと自動再起動はどっちでもいいや。程度に考えていて、そこの選択はどっちでも良いのでは?と思います。
ポートも適当です。
ここで言っていることは仮想環境のDockerのPythonとDSMのポートをどうやって繋ぐかということなので、DSMで利用していないポートであれば良いということだと思います。
なので、両方ともに「2525」なんて適当なものにしました。
で、次はボリューム設定です。
自分はDockerフォルダの下にpythonフォルダを作ってそこを割り付けました。
ボリューム設定ですが、ここ良く分からないのですが、何も入れないわけにはいかないので、/docker/pythonの下だけ取って、適当に「/python」としておきましたよ。
で、設定が終わります。
よく分からない所もありますが、こんな適当でも動くので良いでしょう。
概要を開いてみると、python3が起動している状況が分かります。
で、PYTHON自体のインストールは終わりましたが、pipとかの使い方も書いておかないとなりませんね。
2.PIPインストール
①コンテナを選んで、②python3を選択すると、③詳細ボタンが押せるようになりますので、詳細ボタンを押します。
すると、別のポップアップ画面が立ち上がります。
画面には設定した内容や、動作状況などが表示されています。
①端末タブを押し、②作成ボタンを押します。
bashという画面が開きます。
bashの画面で、pip install requests(Line notifyのライブラリ)を実行して見ました。
上手くインストールできました。
warningの内容は「気を付けて行ってね、壊れても知らないからね。」的なことを書いています。
でも、まぁ、壊れてもまた環境を作れば良いので気楽ですね。
これでpipが使えて、環境が整いました。
3.タスクスケジューラーによる実行
前回の記事でLine Notifyを使ってみた記事があります。
で、この記事で作成したpythonのプログラムをSynologyのタスクスケジューラーで実行しました。
タスクスケジューラーを作成する詳細は以前書いた記事を参考にしてください。↓
で、どうもDSM6との違いは、DSM7ではPATHは要らないようです。
実行するフォルダの指定と実行するファイルの指定で起動するようです。
一応、内容を書いておきます。
cd /volume1/docker/python/
python3 Notify.py
1行目は実行したいPythonのファイルがある場所を指定しています。
2行目でpythonを実行しています。
今の所、30分毎に実行していますが、不具合はないようです。
PATH指定要らないのか~。
なんか、Dockerって簡単で使いやすいですね。
設定も適当で動くし、ダメならまた作ればいいや~といった気楽な感じなのがいいですね。
ということで、DSM7ではPythonはDockerがおススメということでした。