以下の場合、twitter API を動作させるにはどうすればよいですか? 誤って間違ったモジュールを使用しているため、この問題が発生していますか? もしそうなら、どうすれば修正できますか?
私はハーバードの CS109、レクチャー 1 ipython ノートブックを実行してきました。これを除いて、他のすべての例はうまくいきました。anaconda を使用して、すべてが数か月前にインストールされました。ipython で正しいライブラリを使用するのに問題があると思います。
これをipythonで入力しました:
!pip install python-twitter //I added this later to try to identify where it was breaking
!pip install twitter //I added this later to try to identify where it was breaking
import twitter
print twitter //I added this later to help to identify where it was breaking
## define the necessary keys
cKey = "<myKeyIsHere>"
cSecret = "<mySecretIsHere>"
aKey = "<myAccessKeyIsHere>"
aSecret = "<myAccessSecretIsHere>"
## create the api object with the twitter-python library
api = twitter.Api(consumer_key=cKey, consumer_secret=cSecret, access_token_key=aKey, access_token_secret=aSecret)
そして、これは私が得ているものです:
Requirement already satisfied (use --upgrade to upgrade): python-twitter in /Applications/anaconda/lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): requests in /Applications/anaconda/lib/python2.7/site-packages (from python-twitter)
Requirement already satisfied (use --upgrade to upgrade): requests-oauthlib in /Applications/anaconda/lib/python2.7/site-packages (from python-twitter)
Requirement already satisfied (use --upgrade to upgrade): oauthlib>=0.6.2 in /Applications/anaconda/lib/python2.7/site-packages (from requests-oauthlib->python-twitter)
Requirement already satisfied (use --upgrade to upgrade): twitter in /Applications/anaconda/lib/python2.7/site-packages
<module 'twitter' from '/Applications/anaconda/lib/python2.7/site-packages/twitter/__init__.pyc'>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-17-8bddd9593b3f> in <module>()
10
11 ## create the api object with the twitter-python library
---> 12 api = twitter.Api(consumer_key=cKey, consumer_secret=cSecret, access_token_key=aKey, access_token_secret=aSecret)
AttributeError: 'module' object has no attribute 'Api'
これまでのところ、次のアクションを実行しました。
- 開始時にまったく同じエラーが発生しました (ただし、インストール メッセージはありません)。最初は、適切なライブラリがインストールされていなかったため、エラーがスローされたと考えました。ターミナルから「pip install twitter」を実行しましたが、修正されませんでした...これは適切なライブラリではないと思います。私はpython-twitterを使っているはずでした。エラーが何であるかを誤解していました。それ以来、「pip uninstall twitter」を実行し、それと python-twitter の間に依存関係があることを発見し、ipython 経由で再インストールしました。
- ターミナルで「which」を使用して、python と ipython が同じ場所にあることを確認しました。
- ipython に戻って、ipython が参照しているオブジェクトを確認するために、'import twitter' の直後に 'print twitter' を使用しました。python-twitter パッケージではなく、twitter パッケージが表示されました。
- 私はstackoverflowを読んでいて、「pip install twitter」と「pip uninstall twitter」を実行してipythonを混乱させた可能性があることを示唆する回答を見つけ、どういうわけか別のインストールを使用していたに違いないと考えました。
- それを理解し、正しい場所にいて誤用されていないことを確認するために、ipython から '!pip install python-twitter' と '!pip install twitter' を実行しました。メッセージは要件がすでに満たされていることを示しており、それらはすべてアナコンダのインストールに含まれているため、適切にインストールされていると考えています。そうですか?
python-twitter ( https://code.google.com/p/python-twitter/ ) のドキュメントにこの例があるため、私の ipython が正しいライブラリを使用していた場合、私のモジュール オブジェクトには「Api」メソッドが含まれていると思います。 :
>>> import twitter
>>> api = twitter.Api()
誰かが私が間違っている場所を教えてくれれば、本当に感謝しています。
ありがとう。