久しぶりの雨でちょっと憂鬱な気分になっているマスターU(@Udemy11)です。
どうもPycharmのパッケージが変な感じがして、Anacondaに原因があるのではないかと考えています。
最初の頃に使用していたインタープリターがもともとMacに入っているPython3を使っていて、途中からAnacondaのPython3に変更したのですが、そこからpip install
で入れたパッケージがうまく使えなかったりと、ちょっと変な感じだなと思いながら使っていました。
Python学習【365日チャレンジ】も一息ついたので、あらためてAnacondaをアンインストールして再インストールしたいと思います。
Anacondaのアンインストール
Anacondaの公式サイト
に詳しく書かれているので、英語がわかればスムーズにアンインストールできると思いますが、最初にAnaconda3
フォルダを削除すると書かれているので、ついつい削除してしまって、あとから困っちゃうことになる人もいるのではないかと思います。
完全にAnacondaをアンインストールするには、anaconda-clean
を使う必要があるようで、2番目の説明でその解説が書かれているんですよね。
ということで、まずはanaconda-clean
のインストールが必要なようです。
anaconda-cleanのインストール
anaconda-clean
をインストールするには次のコマンドを実行します。
conda install anaconda-clean
しかし、このコマンドを実行してみるものの、エラーが起こるんです
Collecting package metadata (current_repodata.json): failed
UnavailableInvalidChannel: The channel is not accessible or is invalid.
channel name: simple
channel url: https://pypi.python.org/simple
error code: 404
You will need to adjust your conda configuration to proceed.
Use `conda config --show channels` to view your configuration's current state,
and use `conda config --show-sources` to view config file locations.
とりあえず、指示に従ってconda config --show channels
を使ってchannel
を表示してみると次のように表示されました。
channels:
- https://pypi.python.org/simple
- https://pypi.org/
- http://localhost:3141/root/pypi/+simple/
- https://pipy.do.jp/
で、このあとどうするの?と思いつつ、いろいろと調べてみると、解決につながるようなQAがGitHubにありました。
まず、このQAに従って、conda config --remove 【URL】
で【URL】にhttps://pypi.python.org/simple
などを入れて、すべてのchannel
を削除しました。
その後、conda config --add channels default
でdefault
チャンネルを追加して、再度conda install anaconda-clean
を実行しました。
その結果がこちら
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:
- anaconda-clean
Current channels:
- https://conda.anaconda.org/default/osx-64
- https://conda.anaconda.org/default/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
https://anaconda.org
でanaconda-clean
を調べてみろとのことなので、調べてみたところ、次のページに辿り着きました。
このページに書かれている次のコマンドを実行してみました。
conda install -c anaconda anaconda-clean
すると、なんとか無事インストールが始まり、途中一度Proceed ([y]/n)?
とたずねられたときにy
と答えることでインストールが完了したかと思いきや、よく見ると次のようなエラーが。。。
RemoveError: 'setuptools' is a dependency of conda and cannot be removed from
conda's operating environment.
またまたGoogleさんにいろいろと聞いてみると、それっぽい解決策が見つかったので早速実行。
pip
インストールしたsetuptools
が関係しているようで、conda update --force conda
でアップデートしたあと、conda install -c anaconda setuptools
でsetuptools
をインストールすればいいようですが、この段階でやっぱりエラーが発生。
そこで、pip uninstall setuptools
でsetuptools
を削除してからconda install -c anaconda anaconda-clean
を実行してみました。
しかしやっぱり最後に同じエラーが起こってしまいます。
で、最終的にたどり着いたのがこのQA.
このQAの中にある回答で次のようなものがありました。
This was the only thing that worked for me, when using miniconda in pwsh on a Win8 machine.
# Remove index cache, lock files, unused cache packages, and tarballs.
conda clean -a -vv
conda deactivate
conda update -y -n base -c defaults conda --force
conda activate
conda update -y --force conda
pip install -U setuptools
Windows8環境での解決方法でしたが、藁をもすがる思いで試してみることに。
最後のpip install -U setuptools
以外のコードを順番に実行してみます。
clean
コマンドは、使われていないパッケージやキャッシュを削除してくれます。
その後deactivate
で非アクティブ化してからデフォルトの状態にして、再びアクティブ化、最後に強制的にconda
をアップデートしています。
このあと、再度conda install -c anaconda anaconda-clean
を試してみると、無事インストールが完了しました!
いやーほんとここまでが長かった〜。
こんなところではまる人はあんまりいないんでしょうね〜。
どうやらconda
のアップデートでも途中でsetuptools
が原因で止まってしまうことがあるようなので、conda
のアップデートでハマった場合にも、この方法で解決できるかもしれません。
anaconda-cleanの実行
パッケージをインストールできれば次はanaconda-clean
を実行します。
(base) bigmacpro@BigMac-Pro ~ % anaconda-clean
Delete .anaconda? (y/n): y
Backup directory: /Users/bigmacpro/.anaconda_backup/2021-02-15T130519
Delete .astropy? (y/n): y
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
あとは、y
をエンターしていけば、すべてのパッケージが削除されます。
.anaconda_backupの削除
anaconda-clean
を実行すると、/Users/bigmacpro/.anaconda_backup/
フォルダが作成されるので、このフォルダを下記コマンドで削除します。
rm -rf ~/.anaconda_backup
バックアップフォルダを削除したので、次はAnacondaフォルダを削除します。
Anaconda3フォルダの削除
ネットの記事によるとAnaconda3
フォルダを削除するみたいな感じでしたが、私の場合/Users/bigmacpro/opt/anaconda3
にインストールされているので、opt
フォルダごと削除しようとおもって、下記のコマンドを実行しました。
rm -rf opt
少し時間がかかりますが、完了すればFinderからoptフォルダが削除されているのが確認できます。
これでAnacondaのアンインストールが完了ですが、もう一つやっておくことがあります。
AnacondaへのPATHを削除
ターミナルからPythonを実行するときのPATHがAnaconda3
フォルダ内へのPATHになったままなので、そのPATHを削除しておく必要があります。
次のコマンドを実行して.bash_profile
を開きます。
open ~/.bash_profile
テキストエディットでファイルが開くので、すべて削除してファイルを保存して終了します。
ここでふと思ったんですよね。
Catalinaからは、bash
じゃなくて、zsh
で動いてるんじゃなかったっけ?と
で、.zprofile
も、open ~/.zprofile
でファイルを開いて、中身を削除したあと保存しておきました。
その後、source ~/.zprofile
で設定を反映させたあと、ターミナルを一度終了させてから再度起動し、下記コマンドを実行すると、Anaconda3ディレクトリへのPATHが削除されているのがわかります。
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
これでPATHの削除を含めたAnacondaのアンインストールが完了です。
Anacondaのインストール
Anacondaのインストールは、いろいろなサイトで紹介されているので、問題なくインストールと初期化ができると思うので、下記のPythonJapanなどを参考に、インストールしましょう。
元記事がこちら
基本的にAnacondaの公式サイトからインストーラをダウンロードしてから実行したあと、ターミナルでconda
を初期化すれば完了です。
ちなみに私の環境ではPATHが通っていなかったので、/Users/bigmacpro/opt/anaconda3/bin/conda init zsh
とフルパスで実行する必要がありました。
あとは、使用するPycharmのインタープリターにAnacondaのPython3.8を追加すれば、Pycharmからも新しくインストールしたAnaconda環境のPythonを使えるようになります。
まとめ
今日はかなりハマってしまいました。
ほんと使っている環境がおかしくなると元に戻すのにめっちゃ時間がかかるんですよね。
解決方法はネット上にたくさん紹介されていますが、あくまでなんの問題もなくスムーズにできるかどうかはそれぞれの環境によるとおもいます。
ちょっと変わったことをしている場合は、ほぼスムーズに進むことはないかもしれません。
これで一旦、Anacondaの環境がクリアーになったので、Pythonの学習もへんなつまづきがなくなるかもしれません。
同じようにはまっている人はいないかもしれませんが、参考になれば幸いです。