WindowsにAnacondaをインストールしてもAnaconda Navigatorが起動しなかったり、JupyterLabなどが起動しないときの対処方法と、より良いPython環境を考えます
はじめに
この記事は筆者が体験した現象に基づいて書かれています。
これはWindows10にインストールしたときの現象となります。
Anacondaは便利なので様々な参考書で想定する実行環境として、またネット上の記事でも多く取り上げられています。
一方で動作しなくなることも少なくないようで、ネットで検索すると多くの関連した記事を読むことができます。
ただ、意外と日本語で書かれた記事で役に立ったものがなかったので、ここに掲載しておこうと思います。
またWindows上でのPython実行環境はどういったものがいいかを考えます。
問題が発生する環境
WindowsでAnaconda NavigatorやJupyter、Spyderなどが動作しなくなるときに多く見かける環境が、他のPythonバージョンがインストールされていたり、condaとpipのコマンドが入り乱れてライブラリをインストールしていたりです。
(Jupyter Notebookのエラー:ModuleNotFoundError: No module named 'jupyter_server')
ここでは他のPythonバージョンがインストールされている環境で、Anacondaがうまく使えないときの対処方法となります。
例として、Python3.8とAnaconda3(2020.11)が混在している環境で説明します。
ここで問題が発生したのは、Python3.8がインストールされている環境で、Anaconda3をインストールしたときです。
対処方法
結論から言うと完全に解決するには、きれいにアンインストールしてからインストールし直す方法がベストでした。
普通にアンインストールしただけではだめでした。
手順以下となります。
- 通常の方法でAnaconda3とPython3.8をアンインストールする
- 「C:\Users\<username>\AppData\Roaming\Python」フォルダを削除する
- 再度Anaconda3をインストールする
あっさり書いてますが、この3ステップで問題が解消されます。
考察
すでにPythonがインストールされている環境にAnacondaをインストールすると、一部のパスの扱いがおかしくなるようです。
もしくは一部のパスの扱いがおかしくなっている状況でAnacondaをインストールすると動作しなくなるようです。
Anacondaインストール中に以下の設定があります。
デフォルトのままインストールすると、「Register Anaconda as my default Python 3.8」が有効になっています。
これはAnacondaをデフォルトのPython3.8環境として設定するというチェックです。
クリーンな環境にインストールすると、デフォルトのパスでは「C:\Users\<username>\anaconda3」を基本の参照先として動作します。
ですが「C:\Users\<username>\AppData\Roaming\Python」パスが作成されて、その配下にPython38のインストール環境が存在しているときは、Anacondaのモジュールの一部はこちらの先を参照して動作不具合が発生しているようです。
このフォルダがあるときは、Anaconda NavigatorがWindowsメニューからアイコンをクリックしても起動しなくなります。
Anaconda Powershell Promptは起動できるので、そのコマンドラインで「anaconda-navigator」を入力するとNavigatorは起動はします。
ただ、JupyterLabやJupyter NotebookのLaunchボタンを押してもエラーが表示されます。(もちろんコマンドで入力してもエラーが表示されます)
以下がPython単体とAnacondaのデフォルトでインストールしたときのそれぞれのパスです。
Python3.8
C:\Users\<username>\AppData\Roming\Python\Python38
Anaconda
C:\Users\<username>\anaconda3
なので、一度アンインストールして「Roaming\Python」すべてのフォルダを消してからでないと、Anacondaは正しくパス参照してくれないようです。
その他
もし、Anacondaはアンインストールしたくない場合でも、JupyterLabやJupyter Notebookを動かしたい場合は以下を試してみてください。
pip uninstall pyzmq
pip install pyzmq
このときuninstallがエラーとなるときは、以下を試してみてください。
pip install --upgrade pyzmq
これでJupyterLabとJupyter Notebookは使えるようになるかと思います。
Python単体とAnacondaの共存
Python単体とAnacondaの両方をインストールして共存させることはできます。
AnacondaをインストールしてからPython単体をインストールすれば安全かと思います。
そして、どちらのインストールでもPATH環境変数への設定はしないようにしたほうがいいです。
それぞれの環境を利用するときは直接使うようにします。
Python単体を利用するときは、ランチャー「py.exe」を利用します。
例えば、
> py hello.py
や
> py -m pip matplotlib
などです。
以下のコマンドでPythonバージョンを確認してみてください。
> py --version Python 3.9.2
単体でインストールしたPythonのバージョンとなります。
Pythonランチャーはインストール時に「C:\Windows」にコピーされます。
そのためPython環境をPATH環境変数に設定しなくても動作し、ランチャーは実行した環境の最新のPythonを見つけて起動します。
もし複数の本家Pythonバージョンをインストールしている場合は、コマンドに引数を使って起動するバージョンを指定できます。
> py -3.7
この指定でPython3.7を使うことができます。
Anacondaを利用するときは、Windowsメニューから「Anaconda Powershell Prompt」を利用します。
起動したPower ShellではpythonコマンドはAnacondaのPythonとなります。
以下のコマンドでPythonバージョンを確認してみてください。
> python --version Python 3.8.5
AnacondaのPythonバージョンとなります。
Visual Studio Codeの利用と注意点
Microsoftが提供しているエディタVisual Studio Code(VSCode)はPython拡張機能を入れることでコードのデバッグ作業ができます。
またJupyter拡張機能を入れることで、エディタ内でNotebookを使うこともできます。
VSCode1つで基本的な開発作業を進めることができるのでとても有用なツールです。
Pythonを学習するにもこのVSCodeの使用を推奨しますが、Anacondaが動作しなくなったり、Python実行環境が思ったようにならない原因になるので注意が必要です。
筆者が確認している問題点を1つ記載するので参考にしてください。
Jupyter拡張機能を使うときの注意
エディタ内でNotebookが使えるのでとても便利で使ったほうがいいのですが、Notebookで利用するPythonバージョンの設定に注意が必要です。
Pythonバージョンは画面右上のメニューで選択します。
このとき、選択したPythonにJupyterが正しく動作できるライブラリ「ipykernel」がインストールされていないとき、インストールを要求するポップアップとInstallボタンが表示されます。
しかし、絶対にここからはインストールしないでください。
VSCodeからInstallボタンを押してインストールしたときに、「C:\Users\<username>\AppData\Roaming\Python」フォルダが作成されてPython環境がコピーされます。
以後、この環境があるせいでAnacondaなどが正しく動作しなくなります。
これを回避してNotebookを使えるようにするには「ipykernel」をPython環境にインストールしてから、VSCodeのNotebookでPythonを指定します。
> py -m pip install ipykernel
もし「C:\Users\<username>\AppData\Roaming\Python」フォルダができてしまっていた場合は、フォルダを削除してください。