我尝试使用像python-wifi这样的模块python3-wifi,但是它是python3版本,用于获取当前的wifi-ssid和Mac地址,但是我得到了此错误:
我正在尝试的代码
from pythonwifi.iwlibs import Wireless
wifi = Wireless("wlp3s0")
wifi.getEssid() #wifi-ssid
wifi.getAPaddr() #mac address
我尝试使用python3-wifi模块:https://github.com/llazzaro/python3-wifi
我收到此错误
File "/usr/local/lib/python3.6/dist-packages/pythonwifi/iwlibs.py", line 278, in getEssid
File "/usr/local/lib/python3.6/dist-packages/pythonwifi/iwlibs.py", line 789, in getEssid
File "/usr/local/lib/python3.6/dist-packages/pythonwifi/iwlibs.py", line 1220, in __init__
TypeError: cannot use a str to initialize an array with typecode 'c'
是模块错误错误吗?因为我正确地遵循了模块中的代码,如果模块错误,有人可以告诉我应该使用哪个模块,例如获取当前的ssid,mac,ip和网关吗?谢谢...
答案 0 :(得分:1)
这是链接模块中的错误。显然已经从“数组”类中删除了“ c”标志。将python 2.7中的文档与python 3.6中的文档进行比较,就不再有'c'
的{{1}}标志,只剩下char
和b
。
查看链接的github的commit history表示该代码是从其他位置克隆的,从B
重命名为python-wifi
且没有任何重大更改,然后再也没有碰过(自2年以来) ,因此代码可能尚未完全移植。您可以尝试opening an issue或自己修复代码,当您将python3-wifi
中的c
替换为B
时,它可能已经起作用