はじめに
Anacondaで環境を構築し、作成先のディレクトリを変更した際に遭遇した事象についてです。
ライブラリをインストールしているはずなのに、「ModuleNotFoundError」が出てしまうという事象で、それの解決方法を記載します。
事象発生前にやっていたこと
まず、以下の流れで環境構築を行いました。
① Anacondaの仮想環境作成先ディレクトリを「C:\work\Python\envs」
② 作成したディレクトリに仮想環境「C:\work\Python\envs\getAmazon」を作成
③ プログラムファイル保存先として「C:\work\PRG\Python\getAmazon\src」を作成
④ VSCodeで②で作成した環境を使用するようにし、「print('Hello')」が出力されるところまで確認
⑤ 「conda install selenium」でseleniumをインストール
⑥ 「from selenium import webdriver」を記述したソースを実行
→ここで「ModuleNotFoundError」が発生。。。
原因の調査
1.import文の前に「import sys;print(sys.prefix);print(sys.path)」を追加して実行してください。
import sys;print(sys.prefix);print(sys.path)
from selenium import webdriver
Pythonはライブラリインポート時に、ある順番でそのライブラリを探しに行くそうで、参照先がこれで確認できます。
2.出力結果の中に仮想環境作成先のディレクトリが含まれているか確認してください。
今回の場合「C:\work\Python\envs\getAmazon\Lib\site-packages」にseleniumがインストールされているので、
そのパスが含まれている必要があります。
今回は、このパスが含まれていなかったため追加をする必要がありました。
対策
1.PYTHONPATHの追加
環境変数に、seleniumがインストールされているパスを設定します。
今回の場合「C:\work\Python\envs\getAmazon\Lib\site-packages」を追加します
変数 | 値 |
---|---|
PYTHONPATH | C:\work\Python\envs\getAmazon\Lib\site-packages |
2.Anacondaとエディターの再起動
Anacondaとエディター(VSCodeを使用)の再起動をしてください。
再起動後、該当ファイルを実行するとエラーが解消されているはずです。
参考サイト