Facebook SDK forPythonで基本的な例を実行しようとしています。私はこれを正確に実行しようとしました tutorial コマンドラインから実行します(「_pip install facebook
_」と「_pip install facebook-sdk
_」が最初に正常に実行されました...):
_import Facebook
_は正常に機能しますが、graph = facebook.GraphAPI()
は次のエラーを出します。
_Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'GraphAPI'
_
モジュールの仕組みについてはよくわかりませんが、facebook
がまったく認識されていないようです。または、ここに何か他のものがありません。コマンドラインから、次のことを調べてみました。
_>>>dir(facebook)
_
出力:
_['__builtins__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__version__']
_
そして...
_>>>help(facebook)
_
出力:
_Help on package facebook:
NAME
facebook - TODO: Document your package.
FILE
/Library/Python/2.7/site-packages/Facebook-0.0-py2.7.Egg/facebook/__init__.py
PACKAGE CONTENTS
DATA
__loader__ = <zipimporter object "/Library/Python/2.7/site-packages/Fa...
__version__ = 'TODO: Enter a version'
VERSION
TODO: Enter a version
(END)
_
...しかし、私はまだ立ち往生しています。どういうわけか完全にインスタンス化するために「バージョンを入力」する必要がありますか?それとも他の何かでしょうか?
UbuntuまたはDebianを使用している場合は、次のコマンドを実行するだけでこれを機能させることができます
Sudo pip uninstall facebook
Sudo pip uninstall facebook-sdk
Sudo pip install facebook-sdk
他のオペレーティングシステムの場合は、facebook
およびfacebook-sdk
パッケージを削除し、facebook-sdk
のみをインストールします。
そして、そのプログラムを実行すると、動作します。 facebook
モジュールはダミーモジュールのようです。実際に必要なのはfacebook-sdk
だけです。
Facebook-sdkを初めてpython)いじったときにも同じ問題が発生しました。これは、python file "facebook.py"、一貫せずに名前が衝突しました。
@thefourtheyeが提案したことを試しましたが、pipはすべてをアンインストールしていませんでした。代わりに、Facebookパッケージを
rm -rf /path/to/my/venv/lib/python2.7/site-packages/facebook* && rm -rf /path/to/my/venv/lib/python2.7/site-packages/Facebook*
警告:何かを削除する前に、facebook
で始まるパッケージが他にないことを確認してください。私の場合、私は持っていました
facebook/
Facebook-0.0-py2.7.Egg-info/
facebook.py
facebook.pyc
facebook_sdk-0.4.0-py2.7.Egg-info/
私も同じ問題を抱えてる。ファイルの名前をfacebook.pyからfirst.pyに変更しました(1つの名前を選択できます)。したがって、私の結論は、モジュール名でファイルを保存しないことです。