0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

tweepyをinstallしたのにModuleNotFoundError: No module named 'tweepy'のエラー発生

Posted at

はじめに

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に進んでください。すぐに原因にたどり着かず試行錯誤した過程も残します)
error.png

このエラーは、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\... となっており、streamlitC:\Users\user\anaconda3 (全体のAnaconda環境) から実行されていました。

何が起きていたか?

  1. Tweepyvenv (仮想環境) にインストールされている。
  2. しかし、Streamlitvenv に入っていないため、コマンドプロンプトはパソコン全体 (Anaconda) に入っている streamlit コマンドを呼び出した。
  3. Anaconda の streamlit は、Anaconda の Python (base環境) を使って動く。
  4. その結果、実行環境が「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経由で投稿できます。よかった。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?