如何在 OS X 上使用 Python 连接到 Wi-Fi 网络?

How to connect to a Wi-Fi network using Python on OS X?

我想在 OS X (10.11) 上使用 Python 连接到 Wi-Fi 网络。基于 CWInterface reference 我发现有一个 iface.associateToNetwork_password_error_() 方法可用,但是当调用它时它不会连接到网络也不会导致任何异常。

同时iface.disassociate()正常工作并断开WiFi。

这是我试过的代码:

import objc

objc.loadBundle('CoreWLAN',
       bundle_path='/System/Library/Frameworks/CoreWLAN.framework',
       module_globals=globals())

iface = CWInterface.interface()

iface.associateToNetwork_password_error_(SSID, PASSWORD, None)

如何在 OS X 上从 Python 连接到指定网络并确保连接已建立?

我能够通过以下方式成功连接到我的家庭网络:

import objc

objc.loadBundle('CoreWLAN',
                bundle_path = '/System/Library/Frameworks/CoreWLAN.framework',
                module_globals = globals())

iface = CWInterface.interface()

networks, error = iface.scanForNetworksWithName_error_('<Name Of Network>', None)

network = networks.anyObject()

success, error = iface.associateToNetwork_password_error_(network, '<Password Of Network>', None)

我怀疑您遗漏了两件关键的事情:

  1. 您没有将 CWNetwork 作为第一个参数传递。
  2. 您没有检查 return 值(即最后一次调用中的 successerror)。也许他们可以帮助您追踪任何其他问题。