やりたいことと結果
本業不明の風太郎です。エンジニアなのかコンサルタントなのか、講師業なのか、わけわからない状態です。(汗)
今回事情により、クラウド上での分析環境をAnacondaで再現してみようと思いました。必要ではないのですが、できると大変便利になります。
結論をいうと失敗しました。
その過程をここに記録しておきます。だれかの参考になるかも?
参考にしたサイト
qiita.com
ここに書いてあるように一発でうまくいけばOKです。Anaconda同士で、同じOSならばうまくいきました。(OSが違うとかなり難しいそうです)
しかし、元はDockerでPipインストールです。WindowsでもDockerを使えばいいのですが、GPUを使いたため、WIndowsDockerは使用できません。
(GPUがうまく使えない)
将来的にはLinuxをブートしていこうと思いますが、今はそんな時間はありません。
そこで、うまくいくかどうかはわかりませんが、仮想環境上にPipでインストールしようと思います。
qiita.com こちらからPipの読み出し方と、環境構築があります。
minus9d.hatenablog.com ここでは仮想環境の作り方をかいてあります。
やったこと
まず仮想環境を作ります。 pipだけではライブラリしかわからないため、Pythonのバージョンを確認します。
Python 3.5.2 でした
$ conda create --name testenv python=3.5.2
と入力するとエラーがでました。
$ conda create --name testenv2 python=3.5
こっちじゃないとだめなようです。
こんな感じでとりあえず、インストールできたっぽいです。
AnacondaのGUIからは仮想環境ができていることがわかります。しかし、Windowsメニューからはその仮想環境があることがわかりません。
さて困りました。
つくった仮想環境上からpippipを使いたいのです。
案としては次の二つです
- プロンプトから仮想環境に入る
- 仮想環境をWindowsメニューの登録する
一つ目は手軽ですが、JupyterとかもWIndowsメニューから起動したいので、二つ目の案を考えることにします。
まず、condaをアップデートしたら勝手にメニューに登録してくれるのではないか?と考えてアップデートしてみます。
$conda update conda
です。
結果としては変わらないどころがPromptとかのメニューが消える始末。
GUIから仮想環境作成してもだめでした。
どうも、環境自体が壊れたようです。結局再インストールです。
この時やらかしてしまいました。以前一生懸命作った仮想環境をバックアップせずにアンインストールしてしまいました。
おかげで仮想環境が消えてしまいました。すべて作り直しです 。
今回はAnacondaVer2019.7をインストールします(その前は2019.3)これでうまくいくかと期待したけど同じでした。
そこで、GUIからは環境を呼び出せるのでまずは環境を構築します。
Windowsメニューに登録するのは別途次のサイトに従うことにします。
$conda info --envs
で確認した後。
‘‘‘ $activate testenv2 ‘‘‘
で仮想環境に切り替えます。Windowsの場合は
‘‘‘ (testenv2) C:\Users\ユーザ名> ‘‘‘ という形でPromptが表示されます。このブログでは一般的な表記で”$”を使っています。
$pip install -r requirements.txt
でインストールを行います。
これでは、Jupyterがうまくインストールされません、AnacondaのGUIからのインストールも拒絶されて、Pipでインストールしました。
$pip install jupyter
しかし、これもうまくインストールできず、Jupyterが起動しません。
そこで最初から
$conda create --name testenv3 python=3.5 jupyter $activate testenv3 $pip install -r requirements.txt
と行ってみました。
このあとpipでインストールしましたが、pipでインストールされた分はうまくライブラリを認識していませんでした。
Jupyter上から行っても一緒です。
そこで、
$pip install ライブラリ名
としたところ認識しました。
試しに管理者モードで実行したところ、今度はうまくインストールできました。
しかし、いろいろ依存関係が厳しくて、そのままではインストールできませんでした。
ここで気力付きました。あきらめて、必要なライブラリだけcondaでインストールしたり、Pyenvを使えばよかったと後悔しました。