はじめに
tweepyを使ってXをAPI経由で投稿しようとしたが、インストールしてもNo module named 'tweepy' のエラー
が発生してしまった場合の対応を残しておきます。
今回のポイントは仮想環境であり、GoogleAntigravityの解析力をうまく使いながら解決しました。
初心者の私はつまづいたので、同じような人の助けになればうれしいです。
3つのブログを参考にしながら、自分の環境下で起きたことをまとめます。
参考ブログ
開発環境
- windows11
- Anaconda 25.5.1
- tweepy 4.14.0
エラー内容
今回発生したエラーは以下。
ModuleNotFoundError: No module named 'tweepy'
streamlitの画面キャプチャ
(後で原因はtweepyとstreamlitの実行環境違いとわかります。すぐ解決策を知りたい人は対応3に進んでください。すぐに原因にたどり着かず試行錯誤した過程も残します)

このエラーは、Pythonがtweepyライブラリを見つけられないときに発生します。
さくっとgeminiに相談して、原因と解決案を調べてみました。
-
原因
- tweepyライブラリがインストールされていない
- 間違ったPython環境にインストールされている
-
解決案
- pip install tweepyコマンドでインストールし直すか
- VS Codeなどのエディタで正しいPythonインタープリター(仮想環境含む)を選択
pip install tweepyは実施してるのですが、
仮想環境(conda)を使っているので、その環境をアクティベート(有効化)してからpip install tweepyをしてなかったのでは?
と仮説を立ててエラー検証しました。
エラー解決手段
対応1 本当にインストールされているかチェックしてみる。
実行するコマンドはpip show tweepy
conda無効化状態ではインストールされておらず、意図通り。
WARNING: Package(s) not found: tweepy
conda有効化状態では意図通りインストールされていました。
なので、仮想環境をアクティベート(有効化)してからpip install tweepyはできているとわかりました。
C:\Users\user\Documents\python>conda activate venv/
(C:\Users\user\Documents\python\venv) C:\Users\user\Documents\python>pip show tweepy
Name: tweepy
Version: 4.14.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\user\Documents\python\venv\Lib\site-packages
Requires: oauthlib, requests, requests-oauthlib
Required-by:
対応2 tweepyモジュールが存在するパスを正しくpythonが探せているか確認
tweepyモジュールが存在するパスはLocationの部分C:\Users\user\Documents\python\venv\Lib\site-packages
次にpythonがモジュールを探しにいくパスを確認する。
確認方法はPythonで以下のコードを実行。(私はcheck.pyというファイルで実行)
import sys
import pprint
pprint.pprint(sys.path)
check.pyの実行結果
['c:\\Users\\user\\Documents\\python\\tweet',
'C:\\Users\\user\\Documents\\python\\venv\\python312.zip',
'C:\\Users\\user\\Documents\\python\\venv\\DLLs',
'C:\\Users\\user\\Documents\\python\\venv\\Lib',
'C:\\Users\\user\\Documents\\python\\venv',
'C:\\Users\\user\\Documents\\python\\venv\\Lib\\site-packages']
ちゃんとC:\Users\user\Documents\python\venv\Lib\site-packagesを探しにいけているとわかった。
ではなぜエラーが出力されてしまうのか。。。
今の自分では理解できなかったので、GoogleAntigravityの力を使うことにしました。
これまでの対応1と対応2の文をコピーしたうえで、
tweepyをinstallしたのにModuleNotFoundError: No module named 'tweepy'のエラー発生を解決してください。すでに対応1と対応2は実施しました。次の対策を提案して
と指示をしました。
調査のため、チャットを5往復(そのうち3回はターミナル実行の許可)をすると原因と対応策を出力してくれました。
対応3 AIエージェントによる原因特定(Streamlitの実行環境違い)
GoogleAntigravity(AIエージェント)に相談した結果、以下の原因と解決策が判明しました。
原因の特定
エラーの原因は、「Streamlit が仮想環境 (venv) にインストールされておらず、Anaconda (base) の Streamlit が動いてしまっている」 ことでした。
証拠 (ログからの読み取り)
エラーログのパスが C:\Users\user\anaconda3\Lib\site-packages\streamlit\... となっており、streamlit が C:\Users\user\anaconda3 (全体のAnaconda環境) から実行されていました。
何が起きていたか?
-
Tweepy は
venv(仮想環境) にインストールされている。 - しかし、Streamlit は
venvに入っていないため、コマンドプロンプトはパソコン全体 (Anaconda) に入っているstreamlitコマンドを呼び出した。 - Anaconda の
streamlitは、Anaconda の Python (base環境) を使って動く。 - その結果、実行環境が「Anaconda (base)」になり、そこには
tweepyが入っていないため、エラーが発生した。
図解:
- 入力:
streamlit run app.py - 動作:
Anacondaのstreamlitが起動 →AnacondaのPythonで実行 →Tweepyが見つからない (venvにあるから)
解決策
仮想環境 (venv) の中に streamlit をインストールすることで解決します。
そうすれば、venv 内の streamlit が使われるようになり、同じ venv 内にある tweepy も認識できるようになります。
手順
ターミナル(PowerShell/コマンドプロンプト)で以下を実行します。
必ず (c:\Users\user\Documents\python\venv) のように仮想環境が有効になっている状態で実行してください。
pip install streamlit
インストール完了後、再度実行します。
streamlit run app.py
確認方法
インストール後、実行する前に where.exe streamlit (または Get-Command streamlit) を打って確認できます。
-
NG:
C:\Users\user\anaconda3\Scripts\streamlit.exe(Anaconda環境) -
OK:
C:\Users\user\Documents\python\venv\Scripts\streamlit.exe(venv環境)
これで venv の中の streamlit が使われるようになり、無事解決しました。
まとめ
今回のエラーの原因は、「Streamlit が仮想環境 (venv) にインストールされておらず、Anaconda (base) の Streamlit が動いてしまっている」 でした。
TIPS
Anacondaユーザーは
whereコマンドで「犯人探し」をしようAnacondaと仮想環境を併用していると、「今叩いているコマンドが、一体どこの誰なのか?」が分からなくなることがよくあります。
そんな時は、実行前に必ずwhere(Windows) やwhich(Mac/Linux) コマンドを使いましょう。
where streamlit→ 表示されたパスがanaconda3なら要注意!where python→ 今使っているPythonの場所を確認「エラーが出たらまず場所確認」を習慣にするだけで、解決までの時間を大幅に短縮できます。
GoogleAntigravityに解析のサポートをしてもらい解決できました。
プログラミングはAIの助けを借りることで私のような初心者でもエラーを乗り切ることができます。
これでやっとXにAPI経由で投稿できます。よかった。。。