どうも湊(@python_mllover)ですー。先日Pythonで開発作業を行っていたところVSCodeのデバック環境でNumpyがインポートできない現象に陥りました。
パソコン:Windows10
環境Python3.73
具体的な症状としては↓
AnacondaPromptからならインポートできるのにVSCodeからデバッグコンソールでPythonを起動するとNumpyが何故かインポートできない。
Numpyがインポートエラーを起こす原因
色々調べて分かったのは、VSCODEでNumpyがインポートできないのは、Anaconda環境のPATHがVscodeのデバックで起動しているコマンドプロンプトに通っていないこと、これが原因っぽい。
まとめ
Q.Numpyがインポートできない
A.
①AnacondaのPATHを通す
②conda activateで一時的にAnacondaのPathをシステムに通す
③Numpyがインストールしなおす
これらをやると大体治ると思います。結局Vscodeのデバッグコンソールは起動する際にconda activateを自動で実行してAnaconda環境のPathを通しています。ここでうまくPathが通っていないとNumpyがエラーを起こす。
理屈自体はよくあるコマンドプロンプトでpythonが実行できないのと同じです。conda自体が通らない場合は環境変数にcondaのPATHを通す必要があるが最新のAnacondaではインストール時に環境変数にAnacondaのPATHを通すのは非推奨になっている。
恐らく既にほかのアプリケーションをインストールしている場合、Anacondaインストール時にAnacondaのpython.exeのPATHを追加してしまうと、もし他のアプリケーションがPythonをバックで使用していた場合PATHが上書きされてしまうためエラーを起こすことがあるためそれを懸念してのことなんだと思います。
例えばデフォルトでPythonが入っているMACなどは、Anacondaが環境変数を書き換えると他のアプリケーションにエラーをきたすことがます。そのためMACとAnacondaは相性が悪いと言われています。
なので最近はAnacondaインストール時に環境変数にPATHを追加しないことを推奨し始めたのでしょうけど、Windows環境ならAnacondaのPythonのPATHを環境変数に追加していた方が便利ですね。
関連記事
→コマンドプロンプトでpythonが実行できない原因と対処法
Anaconda環境はエラーハンドリングのめんどくささを加味しても圧倒的に便利なソフトウェアなわけなんですけど、仕組みがややこしい分謎にハマるエラーが多いのがネックですね。
まあ何年もPythonを使って環境エラーにぶち当たっているとエラーの原因も絞りこみやすくなってきたりと慣れてくるもんですが、初めての方がこれに当たるとPython嫌いになっちゃうでしょうね・・・。
まあわかればどうしたことでもないのですが、環境構築で詰まるとモチベも下がりますし嫌ですよね。
コメント