¿Falta el socket.AF_BLUETOOTH en Anaconda Python?

Estoy tratando de usar socket.AF_BLUETOOTH como se explica aquí: https://docs.python.org/3.3/library/socket.html

Tengo Python 3.3.5 :: Anaconda 2.1.0 (x86_64) en Mac OS X 10.10.2

y el módulo de socket no parece contener ninguna referencia AF_BLUETOOTH:

In [1]: import socket In [2]: socket.AF socket.AF_APPLETALK socket.AF_INET socket.AF_IPX socket.AF_SNA socket.AF_UNIX socket.AF_DECnet socket.AF_INET6 socket.AF_ROUTE socket.AF_SYSTEM socket.AF_UNSPEC 

¿Alguien puede ayudar?

Los docs dicen:

Según el sistema y las opciones de comstackción, este módulo admite varias familias de sockets.

Y a partir de este bit en Módulos / socketmodule.c:

 #if (defined(HAVE_BLUETOOTH_H) || defined(HAVE_BLUETOOTH_BLUETOOTH_H)) && !defined(__NetBSD__) && !defined(__DragonFly__) #define USE_BLUETOOTH 1 

querrás asegurarte de que HAVE_BLUETOOTH_H o USE_BLUETOOTH se configuren como verdaderos durante la comstackción. Cuál depende de la ubicación de su archivo de encabezados. Pueden estar en /usr/include o /usr/include/bluetooth . Puede comprobar su configuración actual a través de:

 import sysconfig print sysconfig.get_config_vars()['HAVE_BLUETOOTH_H'] 

Supongo que devuelve 0 para ti actualmente. Una pista de pyconfig.h.in:

 /* Define to 1 if you have the  header file. */ #undef HAVE_BLUETOOTH_BLUETOOTH_H 

por lo que debe asegurarse de que el archivo de cabecera bluetooth/bluetooth.h esté presente en su sistema y esté disponible en su ruta de búsqueda durante la comstackción.

PF_BLUETOOTH es una familia de protocolos implementada por el módulo Bluetooth de Linux (de BlueZ). En Linux, creas un socket L2CAP y usas llamadas de socket para comunicarte con el dispositivo (conectar, enlazar, leer, escribir), y las direcciones tienen la familia de direcciones AF_BLUETOOTH. Pero este es un tipo de socket sólo para Linux.

En la Mac, debe usar la API CoreBluetooth (que usa mensajes XPC para el demonio azulado) en lugar de comunicarse con un dispositivo Bluetooth LE.

No tengo conocimiento de una envoltura de Python para CoreBluetooth en OS X, pero si desea ver cómo podría verse, vea las bibliotecas de node.js bleno o noble . En realidad, estas bibliotecas utilizan los mensajes XPC internos que pueden no ser demasiado estables en lugar de la API pública.