ImportError:无法导入名称“ create_connection”

Sah*_*dev 6 python-3.x

我正在使用Python 3.4和websocket-client 0.44。我正在尝试Python webscoket脚本 使用套接字从Bitfinex提取流数据。这是我写的脚本:

import json

from websocket import create_connection

ws = create_connection("wss://api.bitfinex.com/ws/2")
#ws.connect("wss://api2.bitfinex.com:3000/ws")
ws.send(json.dumps({
    "event": "subscribe",
    "channel": "book",
    "symbol": "tBTCUSD",
}))


while True:
    result = ws.recv()
    result = json.loads(result)
    xxx = result
    print(xxx)
    #print(result[1])

ws.close()
Run Code Online (Sandbox Code Playgroud)

而我得到的是,错误:

Traceback (most recent call last):
  File "D:/bitstamp/socket.py", line 3, in <module>
    from websocket import create_connection
  File "C:\Python34\lib\site-packages\websocket_client-0.44.0-py3.4.egg\websocket\__init__.py", line 23, in <module>
    from ._app import WebSocketApp
  File "C:\Python34\lib\site-packages\websocket_client-0.44.0-py3.4.egg\websocket\_app.py", line 35, in <module>
    from ._core import WebSocket, getdefaulttimeout
  File "C:\Python34\lib\site-packages\websocket_client-0.44.0-py3.4.egg\websocket\_core.py", line 24, in <module>
    import socket
  File "D:\bitstamp\socket.py", line 3, in <module>
    from websocket import create_connection
ImportError: cannot import name 'create_connection'
Run Code Online (Sandbox Code Playgroud)

Python 3.4中有问题吗?还是我做错了?

Kap*_*aha 16

Python 3.4 没有任何问题。看来您可能缺少 websocket-client 包。

请通过在终端中运行命令来安装此软件包,如下所示,这应该可以解决您的问题。

pip install websocket-client
Run Code Online (Sandbox Code Playgroud)


Kev*_*vin 5

不要调用您的脚本socket.py。Python的标准库中已经有一个socket,而你与它发生了冲突。您可以通过跟踪回溯来判断这是问题所在:它从您的脚本开始,下降到websocket,最终尝试导入socket,并再次获取您的脚本。