Anacondaを再インストールするときにやっておくべき準備

2020/04/24

【Python】 Python

t f B! P L

こんなときに

  • Anacondaの環境が壊れて一度リセットしたい
  • 今までの細かな設定を引き継ぎたい、残しておきたい

  • AnacondaでPythonのパッケージ管理をしていると、必ずどこかでinstallやライブラリの読み込みでエラーが出てきますよね。
    pipと混ぜてしまったり、別のエラーの対応中に触ってはいけない箇所をいじってしまったり…いろいろ原因はあると思います。
    エラーをもとにググって解決するのも大切ですが、一向に解決する気配がないときは潔く諦めて、Anaconda自体を再度インストールするのが早かったりします。


    再インストールの方法自体は他の記事でたくさん見つかりますが、「Anacondaのアンインストール前にしておくとよいこと」という点でまとめたものは見かけなかったので、自分のメモとともに残しておきます。
    (また再インストールするかもしれませんからね…)

    アンインストールする前にしておくこと

    さっそくアンインストールをする前にしておいたらよいことをまとめていきます。
    以下、コマンドの出力はあくまで一例として、実際は各自の環境によると思うので、適宜読み替えて下さい。

    install済みのライブラリをメモしておく

    % conda list
    

    今までインストールしてきたパッケージのリストが得られます。
    新しい環境で必要なパッケージを入れるときに、入れ忘れたものがないか確認できます

    仮想環境のメモ

    % conda info -e
    # conda environments:
    #
    base                  *  /Users/yamada/anaconda3
    Metaseq                  /Users/yamada/anaconda3/envs/Metaseq
    garminexport             /Users/yamada/anaconda3/envs/garminexport
    kivy_202002              /Users/yamada/anaconda3/envs/kivy_202002
    

    これまで作成した仮想環境の名前とパスのリストが得られます。
    アンインストールすると中身は削除されますが、自分がどのような環境を作ってきたか参考になるかもしれません。

    JupyterLabにまつわるもの

    installした拡張機能の確認


    % jupyter labextension list
    
    /Users/yamada/anaconda3/lib/python3.7/site-packages/notebook/services/kernels/kernelmanager.py:19: VisibleDeprecationWarning: zmq.eventloop.minitornado is deprecated in pyzmq 14.0 and will be removed.
        Install tornado itself to use zmq with the tornado IOLoop.
    
      from jupyter_client.session import Session
    JupyterLab v1.2.6
    Known labextensions:
       app dir: /Users/yamada/anaconda3/share/jupyter/lab
            @jupyterlab/git v0.9.0  enabled  OK
            @jupyterlab/google-drive v1.0.0  enabled  OK
            @jupyterlab/plotly-extension v1.0.0  enabled  OK
            @jupyterlab/toc v1.0.1  enabled  OK
            @krassowski/jupyterlab-lsp v0.7.1  enabled  OK
            @lckr/jupyterlab_variableinspector v0.4.0  enabled  OK
            dask-labextension v1.1.0  enabled  OK
            nbdime-jupyterlab v1.0.0  enabled  OK
    
    Uninstalled core extensions:
        dask-labextension
    

    JupyterLabにはいろんな拡張機能を入れることができて便利ですよね。
    新しい環境でも同じものを忘れずに入れておきましょう。


    設定ファイルをメモしておく

    JupyterLabはAdvanced SettingsでJSON形式で様々な内容をカスタマイズできます。

    メニューバー -> Settings -> Advanced Setting Editor


    こちらも自分でカスタマイズした内容は残しておきたいですよね。
    設定全体をexportする方法は分からなかったので、設定ごとにテキストをコピーしてメモ帳にでも残しておきます。

    以下、設定項目ごとに自分のカスタマイズを貼っておきます。


    1. extension manager

    {
        // Extension Manager
        // @jupyterlab/extensionmanager-extension:plugin
        // Extension manager settings.
        // *********************************************
    
        // Enabled Status
        // Enables extension manager (requires Node.js/npm).
        // WARNING: installing untrusted extensions may be unsafe.
        "enabled": true
    }
    

    2. Notebook

    {"codeCellConfig": {
            "autoClosingBrackets": true,
            "fontFamily": null,
            "fontSize": null,
            "lineHeight": null,
            "lineNumbers": true,
            "lineWrap": "off",
            "matchBrackets": true,
            "readOnly": false,
            "insertSpaces": true,
            "tabSize": 4,
            "wordWrapColumn": 80,
            "rulers": [],
            "codeFolding": false
        }}
    

    3. Theme

    {
        // Theme
        // @jupyterlab/apputils-extension:themes
        // Theme manager settings.
        // *************************************
    
        // Selected Theme
        // Application-level visual styling theme
        "theme": "JupyterLab Dark"
    }
    

    アンインストールの前に残しておくものは大体これくらいですかね。

    anacondaをアンインストールする

    詳しい手順は他の方の記事をご覧下さい。


  • anaconda-cleanのインストール
  • anaconda-clean
  • Homeフォルダ直下のAnacondaフォルダを完全削除
  • ~/.bash_profileや~/.zshrcに書かれているパスを削除
  • Anaconda-Navigator.appの削除
  • 別のフォルダに残っていたanaconda3フォルダも削除
  • anaconda-cleanの実行

    # install
    % conda install anaconda-clean
    
    # 実行
    % anaconda-clean
    Delete .anaconda? (y/n): y
    Backup directory: /Users/yamada/.anaconda_backup/2020-04-23T175501
    Delete .conda? (y/n): y
    Delete .condarc? (y/n): y
    Delete .ipynb_checkpoints? (y/n): y
    Delete .ipython? (y/n): y
    Delete .jupyter? (y/n): y
    Delete .matplotlib? (y/n): y
    Delete .theano? (y/n): y
    

    Homeフォルダ直下のAnacondaフォルダを完全削除

    これだけではAnacondaの中身はなくなりません。
    自身のAnaconda3フォルダのパスを確認して、削除します。

    % rm -fr /Users/yamada/anaconda3
    

    ~/.bash_profileや~/.zshrcに書かれているパスを削除

    # added by Anaconda3 5.3.1 installer
    # >>> conda init >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$(CONDA_REPORT_ERRORS=false '~/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
    if [ $? -eq 0 ]; then
        \eval "$__conda_setup"
    else
        if [ -f "~/anaconda3/etc/profile.d/conda.sh" ]; then
            . "~/anaconda3/etc/profile.d/conda.sh"
            CONDA_CHANGEPS1=false conda activate base
        else
            \export PATH="~/anaconda3/bin:$PATH"
        fi
    fi
    unset __conda_setup
    
    # <<< conda init <<<
    

    前にAnacondaをインストールした際に、自動で書き込まれたものです。
    Macのversionによって、Catalina以降なら.zshrcに書き込まれているはずです。

    Anaconda-Navigator.appの削除

    GUIのアプリが残っているかもしれません。
    Finderで検索して見つけて、削除しておきましょう。

    別のフォルダに残っていたanaconda3フォルダも削除

    これは個人的な環境のせいだと思いますが、Homeディレクトリ以外にもanaconda3のフォルダが見つかりました。
    (Catalinaへのアップデートの影響?)
    43GBほどもあり大きいですし、こちらも一旦ゴミ箱に移動し、最終的には削除しました。

    ちなみに、アンインストールする前のAnaconda環境のフォルダの大きさは、60GBほどもありました。

    anacondaを再度インストールする

    これまた詳しい内容は別の記事を見てもらえたらいいので、簡単にやった内容をメモしておきます。  

    Anaconda Python/R Distribution - Free Download
    公式のサイトからGUIベースのインストーラーまたはスクリプト形式のファイルをダウンロードして、実行します。

    無事インストールが完了すると、~/.zshrcにパスが書き込まれていました。


    # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/Users/yamada/opt/anaconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    else
        if [ -f "/Users/yamada/opt/anaconda3/etc/profile.d/conda.sh" ]; then
            . "/Users/yamada/opt/anaconda3/etc/profile.d/conda.sh"
        else
            export PATH="/Users/yamada/opt/anaconda3/bin:$PATH"
        fi
    fi
    unset __conda_setup
    # <<< conda initialize <<<
    

    新しいanaconda3フォルダは、~/opt/anaconda3/に出来ていました。

    condaが動くか確認しておく

    % conda
    zsh: command not found: conda
    
    % source ~/.zshrc
    
    % conda
    usage: conda [-h] [-V] command ...
    
    conda is a tool for managing and deploying applications, environments and packages.
    
    Options:
    
    positional arguments:
      command
        clean        Remove unused packages and caches.
        config       Modify configuration values in .condarc. This is modeled
                     after the git config command. Writes to the user .condarc
                     file (/Users/yamada/.condarc) by default.
        create       Create a new conda environment from a list of specified
                     packages.
        help         Displays a list of available conda commands and their help
                     strings.
        info         Display information about current conda install.
        init         Initialize conda for shell interaction. [Experimental]
        install      Installs a list of packages into a specified conda
                     environment.
        list         List linked packages in a conda environment.
        package      Low-level conda package utility. (EXPERIMENTAL)
        remove       Remove a list of packages from a specified conda environment.
        uninstall    Alias for conda remove.
        run          Run an executable in a conda environment. [Experimental]
        search       Search for packages and display associated information. The
                     input is a MatchSpec, a query language for conda packages.
                     See examples below.
        update       Updates conda packages to the latest compatible version.
        upgrade      Alias for conda update.
    
    optional arguments:
      -h, --help     Show this help message and exit.
      -V, --version  Show the conda version number and exit.
    
    conda commands available from other packages:
      build
      convert
      debug
      develop
      env
      index
      inspect
      metapackage
      render
      server
      skeleton
      verify
    
      % conda --version
      conda 4.8.2
    

    ~/.zshrcを読み込み直すと無事パスが設定され、動くようになりました。

    初期のanaconda3フォルダの大きさは、6GBほどでした。
    しばらく環境を放っておくといろいろとため込んで、肥大化してしまいますね...

    新しいanaconda環境で最初にやること

    さて、無事新しいcondaコマンドも動いたので、環境を整えておきましょう。

    パッケージをすべてupdateしておく

    デフォルトでインストールされているPythonのパッケージは、versionが古い可能性があるので、まとめて全てupdateしておきます。

    % conda update --all
    Collecting package metadata (current_repodata.json): done
    Solving environment: done
    
    ## Package Plan ##m
    
      environment location: /Users/yamada/opt/anaconda3
    
    
    The following packages will be downloaded:
    
        package                    |            build
        ---------------------------|-----------------
        _anaconda_depends-2020.02  |           py37_0           6 KB
        anaconda-custom            |           py37_1           3 KB
        astropy-4.0.1.post1        |   py37h1de35cc_0         7.4 MB
        *****
        (以下省略)
    

    JupyterLabの設定

    デフォルトのブラウザを設定


    まずjupyternotebookconfig.pyを作成。

    % jupyter lab --generate-config
    
    Writing default config to: /Users/yamada/.jupyter/jupyter_notebook_config.py
    

    jupyternotebookconfig.pyの99行目あたりに

    c.NotebookApp.browser = u'Safari'
    

    と書き込む。
    上の場合はSafari。


    設定しない場合は、システムのデフォルトのブラウザになるのですが、僕はブラウジングしているブラウザとJupyterを開くブラウザを分けています。
    Jupyterを開いていると結構メモリを消費するので、1つのブラウザで使用しているとフリーズした際にブラウジングにも影響が出てしまうので、分けています。


    初期ディレクトリの設定


    同じくjupyternotebookconfig.pyの266行目。

    c.NotebookApp.notebook_dir = '/Users/yamada/'
    

    拡張機能をinstall

    拡張機能は前の環境で入れていたものをそのまま引き継ぎましょう。
    JupyterLabの拡張機能は、Jupyterの画面からGUIでもインストールできますが、まとめて入れる場合はコマンドの方が早いです。


    jupyter labextension install 名前
    

    このコマンドでインストールできます。

    まとめ

    いざAnacondaをアンインストールするとなったときも、設定項目などを事前に残しておくと、新しい環境でもすぐに元の環境に戻しやすくなると思います。
    できる限り、アンインストールはせずに、エラーを解決できるのがベストではあるのですが...



    記事の感想をリアクションでお願いします!

    QooQ