日々精進

新しく学んだことを書き留めていきます

pythonプログラムを実行した時に、自分の環境だとエラーが出ないが他の人の環境だと「No module named~」エラーが出る

conda環境もアプリのコードも同じなのになぜ・・と思ったら、自分の環境ではuser siteに必要なパッケージが入っているが他の人には入っていなかったためだった。

user siteとはユーザ単位で利用するパッケージをインストールするところで、以下のようなところに保存される。

C:\Users\username\AppData\Roaming\Python\Python37\site-packages

user siteをモジュール検索パスに追加していると環境差異が発生しやすくなるので除外した方が良い。除外するには以下を環境変数に設定する。

PYTHONNOUSERSITE=1

モジュール検索パスやuser siteを使う設定になっているかどうかは以下を実行すると調べられる。

python -m site

参考:

qiita.com

stackoverflow.com