1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerでいままでインストールできたElyraがこけるので環境を見直してみた

Posted at

はじめに

Dockerのbuildでインストールしていたライブラリがいきなり失敗することは時々おきます。
本来ならしっかりとバージョンを指定して、いつでも同じ環境にする必要があります。
しかし、私が今回触っていた環境ではElyraがバージョン指定されておらず、インストールができなくなってしまったので、解決方法をまとめます。

環境

  • windows
  • Docker
  • Python3

Elyraの環境はこの記事を参考に作成されています。

問題

Dockerfileの以下の部分で以前は動いていたのですが、エラーが起きました。

# install elyra
RUN conda install -c conda-forge elyra
RUN jupyter lab build --dev-build=False --minimize=False

エラーは以下の通りです。

 > [ 4/21] RUN conda install -c conda-forge elyra:
#7 2.620 Collecting package metadata (current_repodata.json): ...working... done
#7 17.16 Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.
#7 164.5 Solving environment: ...working... failed with repodata from current_repodata.json, will retry with next repodata source.
#7 293.4 Collecting package metadata (repodata.json): ...working... done
#7 337.2 Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.

#7 1554.1 Found conflicts! Looking for incompatible packages.
#7 1554.1 This can take several minutes.  Press CTRL-C to abort.
#7 1554.1 failed
#7 1554.1
#7 1554.1 UnsatisfiableError: The following specifications were found to be incompatible with each other:
#7 1554.1
#7 1554.1 Output in format: Requested package -> Available versions
#7 1554.1
------

Conda環境の中で何かがコンフリクトを起こしているようでした。
こちらについて調べてのですが、よくわからず。別の方法で対処することにしました。

解決方法

1. 以前のバージョンを調べて指定する

以前利用していたElyraのバージョンを調べたところ1.5.3でした。

ですので、以下のように指定することでインストールができました。

# install elyra
RUN conda install -c conda-forge elyra=1.5.3
RUN jupyter lab build --dev-build=False --minimize=False

しかし、別の同じような環境では同じエラーを起こしたり、1.5.3はJupyterLabの3系(Python3)に対応していないこともあり、パイプライン上で.ipynbを利用することができませんでした。

以前にそちらについて述べた記事を上げています。

ですので、別の方法も試してみました。

2. そもそもCondaでなくpipでインストールできないか試してみる

datascience-notebookcondaでライブラリ管理されてるとのことで、Condaを利用してインストールされていましたが、Pythonのライブラリをインストールする際にRUN pip3 install ○○としていたため、pipでインストールできるのでは?と思い試しました。

pipでのインストールであれば、JupyterLabの3系に対応した最新版を入れることができます。

## install elyra
RUN pip3 install --upgrade elyra==2.2.4
RUN jupyter lab build --dev-build=False --minimize=False

無事できました。また、最新版をいれているため3系に対応しています。
ですので、パイプラインで.ipynbを動かすこともできました。

そして、自動でコードチェックが走るためflake8をわざわざJupyterのために入れる必要もありません。

結果として以前よりも使いやすい環境になりました。

さいごに

そもそもライブラリのバージョンを指定していれば起きていなかったので、改めて重要だなと感じました。

Elyrahはまだまだわからないことが多く、どのようにすればターミナルに標準出力できるのか。などドキュメントが英語しかない分調査できていないです。

今後もっと注目されたら嬉しいなと思っております。

参考文献

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?