WebSocketAppを使用してPythonでAPIに接続しようとしていますが、接続できないようです。何をしようとしても、このエラーが発生し続けます。
AttributeError: 'module' object has no attribute 'WebSocketApp'
これが私が使っている簡単なコードです
import websocket
import json
def on_open(ws):
json_data = json.dumps({'data':'value'})
ws.send(json_data)
def on_message(ws, message):
print('data update: %s' % message)
if __name__ == "__main__":
apiUrl = "appurl"
ws = websocket.WebSocketApp(apiUrl, on_message = on_message, on_open = on_open)
ws.run_forever()
私がオンラインで見つけたすべての解決策は私のために働いていません。
websocket
パッケージだけでなく、websocket-client
パッケージの機能を使用しようとしているようです。コマンドラインからwebsocket-client
をPipインストールして(または他のパッケージマネージャーを使用してインストールして)、コードをもう一度実行してみます。
pip install websocket-client
ファイルにwebsocket.py
という名前を付けていないことを確認してください。そうしないと、目的のサードパーティモジュールwebsocket
のインポートが妨げられます。 sys.path
モジュール検索パスに従ってモジュールが最初に検索されるためです。
モジュールの名前を他の名前に変更し、存在する場合は必ずwebsocket.pyc
を削除してください。
この場合、矛盾する可能性のある以前のバージョンをアンインストールして、websocket-clientを再度インストールする必要があります。
pip uninstall websocket-client
pip uninstall websocket
次に、新しいバージョンをインストールします。
pip install websocket-client