web-dev-qa-db-fra.com

AttributeError: l'objet 'module' n'a pas d'attribut 'WebSocketApp'

J'essaie de me connecter à une API avec python à l'aide de WebSocketApp, et je n'arrive pas à le faire. Peu importe ce que j'essaie, je continue à avoir cette erreur:

AttributeError: l'objet 'module' n'a pas d'attribut 'WebSocketApp'

Voici le code simple que j'utilise

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 __== "__main__":
    apiUrl = "appurl"
    ws = websocket.WebSocketApp(apiUrl, on_message = on_message, on_open = on_open)
    ws.run_forever()

Toute aide sera grandement appréciée, toutes les solutions que j'ai trouvées en ligne n'ont pas fonctionné pour moi.

9
user2501169

On dirait que vous essayez d'utiliser les fonctionnalités du package websocket-client et pas uniquement le package websocket. Pip-install websocket-client à partir de la ligne de commande (ou installez-le en utilisant un autre gestionnaire de paquets que vous avez), puis essayez à nouveau d'exécuter votre code.

pip install websocket-client
15
Billy

Assurez-vous que vous n'avez pas nommé votre fichier websocket.py; Sinon, cela empêchera l'importation du module tiers souhaité websocket; parce que votre module est recherché en premier selon sys.path chemin de recherche du module.

Renommez votre module en un autre nom et veillez à nettoyer websocket.pyc s'il y en a un.

7
falsetru

Dans ce cas, vous devez désinstaller les versions antérieures incohérentes possibles et réinstaller Websocket-client:

pip uninstall websocket-client
pip uninstall websocket

puis installez une nouvelle version:

pip install websocket-client
1
Amirkhm