こんにちは.changです.
ふとした事情から,以前に試したReNomを再度使おうとしたところ,セットアップできずに断念しました. この記事の目的はReNomを動かすことではありません. Pythonをベースとした(主にディープラーニング関連の)アプリケーション開発のリスクについて,再考することです.
0. ReNom再セットアップ
以前のメモ*1に沿ってインストールしようとしました. つまずいたのは↓です.
$ sudo apt install -y nodejs npm
npmのインストールが失敗するようなので調べてみると,同様のトラブルを経験している方がいらっしゃいました*2.
nodeをソースから入れろということみたいなので試してみます.
- 古いver.をとりあえず消す
$ sudo apt-get remove nodejs $ sudo apt-get remove npm
- ソースを取得してインストール
$ sudo apt-get install curl $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - $ sudo apt-get install -y nodejs
ver.確認
$ node -v v8.10.0
この後で再度npmを入れようとしましたが,同じエラーになりました. 以前にセットアップしたときはnodeがv10.15.3だったので,ver.が不整合なのかも知れません. v10を入れるための方法をまとめてくれた方がいらっしゃった*3ので試しましたが,僕の環境ではv8しか入りませんでした.
で,結局入らないのでReNomの公式サイトを見たところ,以前には無かったpipのインストーラが公開されていました.
- ReNomTAGを入れる
$ pip3 install https://grid-devs.gitlab.io/ReNomTAG/bin/renom_tag-1.4b1-py3-none-any.whl
- 起動成功
$ python3 -m renom_tag Bottle v0.12.13 server starting up (using WSGIRefServer())... Listening on http://0.0.0.0:8080/ Hit Ctrl-C to quit.
同様にReNomIMGもpipで入れてみましたが,こちらは起動エラーになりました.
$ pip3 install https://grid-devs.gitlab.io/ReNomIMG/bin/renom_img-2.4b5-cp36-cp36m-linux_x86_64.whl $ python3 -m renom_img Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) ...(省略)... from pandas.core.dtypes.cast import ( ImportError: cannot import name 'maybe_downcast_numeric'
ここで断念しました. ちなみに,以前はgithubからソースを取得してインストールしたのですが,現在はソースが非公開になった様です.
1. Pythonアプリについて
以前に,ユーザに納品するソフトのバックグラウンドにPythonを使用するのは危険という話をしました*4. 今回の経験は,Pythonを含んだ,Web経由でインストールするオープンソース資源を使うことのリスクという事になります.
前回にReNomをセットアップしたのが,丁度2年前です. 開発者の感覚からすると,2年前の資源が使えないのは当たり前です. むしろ,2年間も環境が更新されていないのならば,開発の進捗が心配になります. でも,ユーザにはそう言えないです. 納品時のHDのミラーを残す等で緊急対応は出来るでしょうが,,,システムファイルとデータファイルを上手くわけられればね.
今回の経験からは少し飛躍しますが,やはり,Pythonベースのディープラーニング環境をユーザのパソコンに入れるのは難しいと思いました. やるなら,自社のクラウド上に構築&メンテナンスした環境を,ユーザーにログインして使ってもらうのでしょう. ただ,最新環境を維持しようとすると,少なからず,ユーザ側のオペレーションも変わるハズです. その辺の理解を得ることが必要かと思います.
2. むすび
また愚痴っぽい話になりました. 別にReNomを批判するつもりはありません. 環境の再構築は別の機会に試してみるつもりです.