先日Python初心者のメンターをしててAnacondaをインストールしたのにコマンドプロンプトでPythonが実行できないというテンプレエラーに遭遇したので、当たらめてまとめておきます。
関連記事:【Python】Anacondaのインストールと初期設定から便利な使い方までを徹底解説!
Contents
インストール済みのpythonコマンドが認識されない原因は何か?
Pythonを始めた人が一度はハマるこのエラーですが結論からいくと
rootにPATHが通っていない
これに尽きます。
Pythonに限らずインストールしたはずなのに、コマンドプロンプトでコマンドが認識されない原因はrootにPATHが通っていないからです。
実はこれAnacondaのインストール時のオプションで設定するかどうか絶対に聞かれていて、それを選択しておかないとrootにPathは通さないという設定でAnacondaとPythonインストールされてしまいます。
インストール後にコマンドプロンプトでpythonを実行しようとするとコマンドが認識されていませんというエラーの原因になります。
まあAnaconda_PromptはAnacondaのPythonのPATHを自動で通してくれているので、このエラーは起きないのでそこまで大きなエラーでもないのですが、Vscodeで、Pythonで作ったアプリのデバックするときなんかにエラーの原因になります。
pythonコマンドが認識されないときの解決策
そして解決策ですが、システム環境変数にAnacondaのパスを通せば、コマンドプロンプトでもpythonが動くようになります。
C:\Anaconda3 C:\Anaconda3\Library\mingw-w64\bin C:\Anaconda3\Library\usr\bin C:\Anaconda3\Library\bin C:\Anaconda3\Scripts
インストール時にデフォルトのディレクトリにAnacondaをインストールした場合Anacondaの設定ファイルは上記の場所にあるので、それをシステムパスに通して再起動するだけです。
またMacなんかでデフォルトのルートにあるpythonを使ったアプリケーションが動いており、Anacondaのpythonのパスを通したくないときはコマンドプロンプト上で、以下のコマンドを実行するとAnacondaのPythonコマンドがコマンドプロンプト上でも認識されるようになります。
$C:/Users/「自分のユーザー名」/Anaconda3/Scripts/activate $conda activate root または $conda activate (仮想環境名)
※/Anaconda3/Scripts/の場所はAnacondaをどこにインストールしたかで変わるので、各自の環境で任意に変更して下さい。
rootにAnacondaのPATHを通すメリットとデメリット
ここまで読んでいるとコマンドプロンプトでpythonが使うのにひと手間かかるし、デフォルトでrootにPATHが通るようにしておけばいいじゃん。と思う人も多いと思います。
ですが、最近のAnacondaのインストーラーではrootにPATHを通すという設定は非推奨になっています。
これはなぜかというと、うえでチラッと書いていますが、デフォルトで別のPythonが既に存在しているのに、ルートにあるpythonのPATHをAnacondaのPythonのPATHで上書きしてしまうと、MacやCentosなどデフォルトでPythonがインストールされているOS環境では不具合が起こる可能性があるからです。
AnacondaがMacなどと相性が悪いと言われているのもこれが原因で、そのため最近のAnacondaのインストーラーではrootにPATHを通すことはデフォルトだと非推奨になっています。
rootにPATHは通すべきか否か
個人的なこの命題に対する結論としては、以下の通りです。
Windows→通した方が便利だけだけど業務の環境構築では通さない
それ以外→通さない方が無難
まあrootはPCの根幹なので、むやみに弄ると予期せぬエラーに繋がり最悪初期化のリスクもあるので、弄るべきではないというAnaconda開発者陣営の意図も分かりますし、別にPATHを通さなくても動くことは動くので、通さないほうがいいと思います。
関連記事:Window10にPythonの開発環境を構築する上で知っておくべき3つのこと
自分も自分のPCでは一々conda activate~とか打ち込むのもめんどくさいので、rootにAnacondaのPATHを通していますが、業務で新規に環境構築の手順書なんかを作るときには予期せぬエラーが起こると面倒なのでrootにPATHは通さないようにしています。
ですが、プログラミング初心者はPC初心者なわけで、これがPythonの環境構築でハマる大きな原因になるので、難しいところですね。pythonは簡単ですが、これだけはちょっとややこしい点だと思います。
コメント