Jupyter Notebookが起動しないと思ったらAnaconda環境が壊れていた
pipで新しくパッケージを入れたら、conda環境が壊れてしまったようです。本記事ではその発端と原因究明・確認方法、解決策を記録しておきます。
この事故は起きた時の環境は以下の通りです。OSはwindows 10。
conda version : 4.6.8 conda-build version : not installed python version : 3.7.2.final.0 OS:Windows 10 64 bit
事の発端
ある日いつもどおりJupyter Notebookを起動したら、ウィンドウがパッと出て、一瞬で消えた。やり直してもパソコン再起動しても一向に変わらない…。
直前に入れたpipで新しくパッケージに入れていたので、とりあえず全部アップデートすれば良いだろうと思って、Anaconda promptから
・conda自体アップデート( conda update -n base conda
)
・インストールした全パッケージアップデート(conda update --all
)
を試してみた。
すると以下の表示が…
Solving environment: / WARNING conda.common.logic:get_sat_solver_cls(278): Could not run SAT solver through interface 'pycosat'. failed CondaDependencyError: Cannot run solver. No functioning SAT implementations available.
どうやら「SAT solver」なるものがうまく動けていない模様。
公式ページのcondaの仕組みについての記事を参照すると、condaはSAT solverを使用して「その環境にある全パッケージのメタデータを収集し、それらの依存関係がちゃんと満たされているか」を検証しているみたいです。
環境内のパッケージを把握できない状態にある、ということは環境に異変が起きてしまっていると思われます。
確認方法
結論としてcondaとpipの衝突が原因でした。原因については以下のサイトを大変参考にさせて頂きました。
“Anaconda下でpipを使うと予期せず環境が破壊され、最悪の場合Anaconda自体の再インストールが必要になる。"
“既に構築済みの自分のconda環境でpipとcondaの衝突があるか確かめたい場合は、conda list
を実行する。"
自身の環境をconda list
で確認してみると、確かにいくつか重複しているものがあります(画像中で白地で強調部分してます)。
なお、一番右側に「pypi」と表示されているのがpip install
によるもの、無印のがconda install
によるものです。
これがpipによってインストールしたものと衝突し、SAT solverが実行できなくなった結果、conda環境自体が動けなくなってしまったのかもしれません。
Anacondaの再インストール
Anaconda promptが動かないのでAnaconda-Cleanを使ったアンインストールはできません。
[コントロールパネル]の[プログラムのアンインストール]から削除し、再度インストールしなおします。詳細は以下にもまとめました。conda installとpip installの違いについても調べましたので、ご参考にしていただければ幸いです。
ディスカッション
コメント一覧
まだ、コメントがありません