Python3.6上的模块套接字出错

时间:2017-06-26 10:01:24

标签: bluetooth raspberry-pi raspbian python-3.6

首先是上下文:我想通过蓝牙连接发送一些数据。 要做到这一点,我想使用Python 3.6,因为我使用这种编程语言编写了算法的其余部分。我在基于Debian Jessie的Raspbian Jessie lite用于覆盆子pi上使用它。 问题是当我使用这段代码时:

import socket

hostMACAddress = 'xx:xx:xx:xx:xx:xx' # The MAC     address of a Bluetooth adapter on the server
port = 3 
backlog = 1
size = 1024
s=socket.socket(socket.AF_BLUETOOTH,socket.SOCK_STREAM,socket.BTPROTO_RFCOMM)
s.bind((hostMACAddress,port))
s.listen(backlog)
try:
    client, address = s.accept()
    while 1:
        data = client.recv(size)
        if data:
            print("data")
            client.send(data)
except: 
    print("Closing socket") 
    client.close()
    s.close()

此错误如下所示:

Traceback (most recent call last):
  File "TestSocket.py", line 5, in <module>
    s =socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
AttributeError: module 'socket' has no attribute 'AF_BLUETOOTH'

我在一个网站上使用它,表明它对Python 3.3及更高版本的功能。 它很复杂,因为没有这个属性,我不知道如何使用套接字模块建立蓝牙连接并正确发送数据。 我不是Python的专家,所以欢迎任何帮助或Debian发行版。 Thinx适合你的时间,抱歉任何语法错误或拼写错误英语不是我的母语。

1 个答案:

答案 0 :(得分:2)

Raspbian安装了两个Python版本,2.7&amp; 3.4。

Python 2.7是默认值,因此在命令提示符下键入python script.py将针对Python 2.7运行脚本

如果您使用python3 script.py,您应该会发现您的脚本有效

另请注意,Raspbian Jessie的最新Python版本为3.4