オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

npmが入らない(泣).やはりPythonアプリ厳しい? という話

 こんにちは.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を批判するつもりはありません. 環境の再構築は別の機会に試してみるつもりです.