Python環境の再構築@macbook pro <1>
先日のブログ(5月3日)に、
macOS(conda環境)でturtleを使おうとしてもうまくいかない。
具体的には以下のことを行うとすべてmacOSが再起動されてしまうというかなり深刻な状態。
と書いたが、そもそもturtleの問題ではなく、どうもtkinterに関連する現象であることはほぼ確実みたい。 たまたま自分のノート(mcbook pro)が悪いのかと思って、もう一台別のマシンで確認してみたが、ほぼ同じ現象が再現された。
一方で、昔のiMacを再起動して、OSクリーンインストール=>Anacondaのインストールで試したところ、
- こちらもidleではpython2が起動するものの、idle3と入力するとpython3のidleが起動される
- tinterをつかったスクリプトも問題なく動作する
ということがわかり、かならずしもすべてのmacの環境で同じことが起こるわけでもないようだ。
せっかく PythonでGUIプログラミングの勉強をはじめよう、とおもったところにこの状態。 連休中だし、自粛中だし、まあこの際すっかりPythonの環境をクリーンに再構築しよう、ということで再構築作業をはじめたのでメモしておく。
この手の情報はWEBにたくさん出ているので、まずはどこを参考にするかチェックする。 いくつか役に立ちそうな記事を発見したので、それらを参考に作業を進めていく。
「Pythonの環境をクリーンに再構築する」が目的なので、以下の順で作業を進めていくことにする。
かなり長くなるので、今日のところは1.までを詳細にメモとして残しておく。
Python環境をデフォルトに戻す
具体的には、anacondaを完全にアンインストールして、デフォルト(Python2.7のみインストールされている状態)にする。 参考になったのは以下のページ。
もともと、anaconda3をインストールしたあとに、condaで環境構築していたので、 まずは仮想環境の削除から。Python3.8.2をインストールした仮想環境「py386」をつくっていたので、 まずはそれを削除。
(base) mbp13:~ solvalou$ conda remove -n py382 --all Remove all packages in environment /Users/solvalou/anaconda3/envs/py382: ## Package Plan ## environment location: /Users/solvalou/anaconda3/envs/py382 The following packages will be REMOVED: ca-certificates-2020.1.1-0 certifi-2020.4.5.1-py38_0 libcxx-4.0.1-hcfea43d_1 libcxxabi-4.0.1-hcfea43d_1 libedit-3.1.20181209-hb402a30_0 libffi-3.2.1-h0a44026_6 ncurses-6.2-h0a44026_0 openssl-1.1.1g-h1de35cc_0 pip-20.0.2-py38_1 python-3.8.2-hc70fcce_0 readline-8.0-h1de35cc_0 setuptools-46.1.3-py38_0 sqlite-3.31.1-h5c1f38d_1 tk-8.6.8-ha441bb4_0 wheel-0.34.2-py38_0 xz-5.2.5-h1de35cc_0 zlib-1.2.11-h1de35cc_3 Proceed ([y]/n)? y Preparing transaction: done Verifying transaction: done Executing transaction: done
一応確認すると、(base)のみ残っているので無事削除できている。
(base) mbp13:~ solvalou$ conda info -e # conda environments: # base * /Users/solvalou/anaconda3 (base) mbp13:~ solvalou$ (base) mbp13:~ solvalou$ env | grep CONDA CONDA_SHLVL=1 CONDA_PROMPT_MODIFIER=(base) CONDA_EXE=/Users/solvalou/anaconda3/bin/conda _CE_CONDA= CONDA_PREFIX=/Users/solvalou/anaconda3 CONDA_PYTHON_EXE=/Users/solvalou/anaconda3/bin/python CONDA_DEFAULT_ENV=base
ここから、上記WEBサイトの通りに作業を進める。
- anaconda-cleanを実行する (厳密には、anaconda-cleanをインストールしてから、実行)
anaconda-cleanのインストール&実行の画面は以下の通り。 まずはインストール:
(base) mbp13:~ solvalou$ conda install anaconda-clean Collecting package metadata (current_repodata.json): done Solving environment: / The environment is inconsistent, please check the package plan carefully The following packages are causing the inconsistency: - defaults/osx-64::anaconda==2019.07=py37_0 - defaults/osx-64::numba==0.44.1=py37h6440ff4_0 done ## Package Plan ## environment location: /Users/solvalou/anaconda3 added / updated specs: - anaconda-clean The following packages will be downloaded: package | build ---------------------------|----------------- anaconda-clean-1.1.0 | py37_1 7 KB tbb-2020.0 | h04f5b5a_0 150 KB ------------------------------------------------------------ Total: 157 KB The following NEW packages will be INSTALLED: anaconda-clean pkgs/main/osx-64::anaconda-clean-1.1.0-py37_1 tbb pkgs/main/osx-64::tbb-2020.0-h04f5b5a_0 Proceed ([y]/n)? y Downloading and Extracting Packages tbb-2020.0 | 150 KB | ######################################################### | 100% anaconda-clean-1.1.0 | 7 KB | ######################################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done
つづけてanaconda-cleanを実行:
(base) mbp13:~ solvalou$ anaconda-clean Delete .anaconda? (y/n): y Backup directory: /Users/solvalou/.anaconda_backup/2020-05-05T110440 Delete .conda? (y/n): y Delete .condarc? (y/n): y Delete .idlerc? (y/n): y Delete .ipynb_checkpoints? (y/n): y Delete .ipython? (y/n): y Delete .jupyter? (y/n): y Delete .matplotlib? (y/n): y
一応ここまで問題なく実行できたが、バックアップは一応とっておくことにする。 (削除するときには以下のコマンドで削除)
$ rm -fr ~/.anaconda_backup
Anaconda3ディレクトリを削除する Anaconda3のディレクトリの場所を確認して削除。これはすぐにできる。 *普通は /Users/solvalou/anaconda3 にあると思う。
.bash_profileの中のPathを追加する記述を削除する 適当なeditorで.bash_profileを編集。 前回Anacondaをインストールするときに追加された以下の部分をまるっと削除する。
# added by Anaconda3 2019.07 installer # >>> conda init >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/solvalou/anaconda3/bin/conda' shell.bash hook 2> /dev/null)" if [ $? -eq 0 ]; then \eval "$__conda_setup" else if [ -f "/Users/solvalou/anaconda3/etc/profile.d/conda.sh" ]; then . "/Users/solvalou/anaconda3/etc/profile.d/conda.sh" CONDA_CHANGEPS1=false conda activate base else \export PATH="/Users/solvalou/anaconda3/bin:$PATH" fi fi unset __conda_setup # <<< conda init <<<
vimでファイルを開いて中身を削除。 ちゃんと消えたか一応確認しておく。
(base) mbp13:~ solvalou$ vim .bash_profile (base) mbp13:~ solvalou$ cat .bash_profile (base) mbp13:~ solvalou$
これで問題なく削除できていることが確認できた。
- ショートカットを削除する これは、単にFinderからアプリケーションフォルダにあるAnacondaのエイリアスアイコンをゴミ箱にいれて終了。
一応macを再起動して、Pythonがデフォルトの状態にもどったか確認すると、
mbp13:~ solvalou$ which python /usr/bin/python mbp13:~ solvalou$ python --version Python 2.7.10 mbp13:~ solvalou$ python Python 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit() mbp13:~ solvalou$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.7/lib/ total 0 lrwxr-xr-x 1 root wheel 9 7 29 2019 libpython2.7.dylib -> ../Python drwxr-xr-x 5 root wheel 160 7 29 2019 pkgconfig drwxr-xr-x 649 root wheel 20768 2 23 2019 python2.7
デフォルトではPython2.7.10がインストールされている。
以上のとおり、ほぼ参考にしたページ記載の通りに作業をすすめて、無事にアンインストールできた模様。 続きはまた明日以降に。