我想在OSX(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)

我怀疑你遗漏了两件重要的事情:
您没有将CWNetwork作为第一个参数传入。
您没有检查返回值(即,在最终调用中,successerror)。他们也许可以帮你追踪其他问题。

09-04 05:09