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.
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
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.
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