tweepyをinstallしたのにModuleNotFoundError: no module named “tweepy”になった時の対処法

tweepyを使ってapi叩こうと思ったが、インストールしてもmoduleが見つからないエラーに遭遇した。

ModuleNotFoundError: no module named “tweepy”

そのときの対処法を備忘録として残す。

やりたいこと

import tweepy でtweepyのライブラリを使える状態にすること。

エラーになった原因と解決方法

pip intall tweepyでインストール完了したのに、VsCodeで実行ボタンを押すと以下のようなエラーに直面した。

ModuleNotFoundError: No module named 'tweepy'

モジュールが見つからないエラーは頻繁に起こる。まず、本当にインストールされているかチェックしてみる。

$ pip list
Package             Version
------------------- ---------
asgiref             3.4.1
certifi             2021.5.30
charset-normalizer  2.0.4
Django              3.2.6
djangorestframework 3.12.4
idna                3.2
oauthlib            3.1.1
pip                 21.2.4
PySocks             1.7.1
pytz                2021.1
requests            2.26.0
requests-oauthlib   1.3.0
setuptools          56.0.0
six                 1.16.0
sqlparse            0.4.1
tweepy              3.10.0
urllib3             1.26.6

tweepyがちゃんと入ってる。

次はtweepyがどのパスに存在しているのか確認してみる。もしかすると環境変数PATHとは違うところを探している可能性があるからだ。

$ pip show tweepy
Name: tweepy
Version: 3.10.0
Summary: Twitter library for Python
Home-page: <https://www.tweepy.org/>
Author: Joshua Roesslein
Author-email: tweepy@googlegroups.com
License: MIT
Location: c:\\users\\juvenile0712\\appdata\\local\\programs\\python\\python39\\lib\\site-packages
Requires: six, requests, requests-oauthlib
Required-by: 

Locationの部分に注目するとtweepyモジュールが存在するパスが分かる。このパスはどこかにメモっておこう。環境変数PATH設定で利用するからだ。

次はpythonがモジュールを探しにいくパスは何なのか見てみる。

import sys
import pprint
pprint.pprint(sys.path)
['',
'C:\\\\Program '
'Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\\\\python39.zip',
'C:\\\\Program '
'Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\\\\DLLs',
'C:\\\\Program '
'Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\\\\lib',
'C:\\\\Users\\\\Juvenile0712\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0',
'C:\\\\Users\\\\Juvenile0712\\\\AppData\\\\Local\\\\Packages\\\\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\\\\LocalCache\\\\local-packages\\\\Python39\\\\site-packages',
'C:\\\\Program '
'Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0',
'C:\\\\Program '
'Files\\\\WindowsApps\\\\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\\\\lib\\\\site-packages']

先ほどメモしたパスと合っているだろうか。恐らく違っているからモジュールが見つからないとエラーが吐かれているのだと思う。なので環境PATH設定を変更してみる。

実際に環境変数にPATHを追加したが、これでもエラーが治らない。なぜなのか、もう少し調べてみることにした。

するとPython2系3系に関するブログが出てきた。そこによると、モジュールがどのpython系にインストールされたかで意図しない結果が返ってくるとのこと。

そもそもVsCodeで実行ボタンを押すとということはすなわち、Python3系で実行しているということ。つまり以下のコマンドを実行していることに等しい。

python3 test.py

これでmodulenotfoundエラーが出てくるということは、おそらくtweepyをインストールするときにpython2系にインストールしてしまった可能性が高い。ということで、python2系で実行してみることに。

python test.py

これで無事、実行された。

なぜ、自力で解決できなかったのか

  • moduleがどこにインストールされているのかを意識していなかった
  • Vscodeの実行ボタンの意味を知らなかった
  • python2,3系の違いで処理が違うことを知らなかった

参考文献

PythonでModuleNotFoundError: No module namedした話 – Qiita

PythonでNo module namedのエラーがでる | ハックノート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です