Pythonで「AttributeError: module ‘tweepy’ has no attribute ‘error’」が出たときの対処法【Twitter API】

目次

はじめに

PythonでTwitter APIを使っていると、思わぬところでエラーが発生することがあります。
私の場合は、ツイートに自動で“いいね”を付けるプログラムを実行した際に、以下のようなエラーが出ました。

AttributeError: module 'tweepy' has no attribute 'error'

突然のエラーに戸惑いながらも、原因と対処法について調べ、実際にエラーを解消できたので、同じような問題で困っている方の参考になればと思い、まとめておきます。


エラーの原因(推測)

まず、明確な公式ドキュメントによる解説が見つからなかったため、完全な断定はできません
ただし、私のケースでは、すでに「いいね」済みのツイートに対して再度“いいね”を押そうとしたことが原因のようでした。

Tweepyの処理の中で、「すでに処理済みのツイート」に対して再度処理を行おうとすると、
エラーハンドリング部分でerror属性を参照しようとし、存在しない属性を参照したことでAttributeErrorが発生したと考えられます。


エラー発生時の状況

# 例:いいね処理
api.create_favorite(tweet.id)

このようなコードを含む自動化処理を繰り返す中で、すでに“いいね”が付いていたツイートを対象にしたときにエラーが発生しました。


解決策(私の場合)

いったん、対象のツイートの“いいね”を手動で外し、再度プログラムを実行してみたところ、エラーは出なくなりました。

また、念のため、該当処理にtry-except構文を追加してエラーをキャッチすることで、プログラムの中断を防ぐようにも対処しました。

try-except構文の追加例

try:
    api.create_favorite(tweet.id)
except Exception as e:
    print(f"エラー発生:{e}")

このようにしておくと、仮に同様のエラーが発生しても、プログラム全体が止まることはなく、ログ出力のみに留めることができます。


注意点

  • tweepy.errorは古いバージョンで使われていた表記であり、現在のTweepy(v4以降)では存在しない属性です。
  • そのため、tweepy.error.TweepErrorなどの記述がある場合、最新版では通用しないことがあります
  • 最新版のTweepyでは、tweepy.errorsモジュールを使う必要があります(例:tweepy.errors.Forbiddenなど)。

まとめ

「AttributeError: module ‘tweepy’ has no attribute ‘error’」というエラーは、主にTweepyのバージョン違いや、既に処理されたツイートへの再操作が原因となる可能性があります。

今回のように、処理対象のデータの状態(例:既に“いいね”されているかどうか)に注意しつつ、
例外処理を加えることで、エラーの発生を防ぎながら安定した自動化が実現できます。

同じようなエラーで困っている方の参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次