Python:wifisubprocess.CalledProcessError:命令'['/sbin/ifdown','wlp4s0']'返回非零退出状态1

2024-09-30 18:27:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本来自动连接到已知的Wifi。 我正在使用下面的库https://wifi.readthedocs.io/en/latest/,它似乎工作得很好。唯一的问题是,当尝试通过方案.激活()命令,则返回以下错误:

    Traceback (most recent call last):
  File "wifi_connection.py", line 100, in <module>
    print Connect('dotbot', 'pass')
  File "wifi_connection.py", line 64, in Connect
    savedcell.activate()
  File "/home/pietro/.local/lib/python2.7/site-packages/wifi/scheme.py", line 172, in activate
    subprocess.check_output(['/sbin/ifdown', self.interface], stderr=subprocess.STDOUT)
  File "/usr/lib/python2.7/subprocess.py", line 574, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['/sbin/ifdown', 'wlp4s0']' returned non-zero exit status 1

我真的不明白。在

脚本的名字是wifi_连接.py代码如下:

^{pr2}$

其中wlp4s0是wifi接口的名称,“dotbot”和“pass”分别是wifi的名称及其密码。在

提前谢谢你的帮助。在

奇怪的是,当我运行命令“ifconfig”时,我得到:

wlp4s0    Link encap:Ethernet  IndirizzoHW e0:06:e6:f8:53:29  
          indirizzo inet:192.168.0.116  Bcast:192.168.0.255  
          Maschera:255.255.255.0
          indirizzo inet6: fe80::525e:7c8d:6f43:9d98/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:222347 errors:0 dropped:0 overruns:0 frame:96541
          TX packets:147762 errors:0 dropped:0 overruns:0 carrier:0
          collisioni:0 txqueuelen:1000 
          Byte RX:208449235 (208.4 MB)  Byte TX:17616899 (17.6 MB)
          Interrupt:19 

但如果我尝试“/sbin/ifdown wlp4s0”,那么我得到:

Unknown interface wlp4s0

Tags: inpy命令脚本outputconnectlineconnection
2条回答

除非我搞错了,否则我发现ifdown/ifup似乎不再被使用了。我已经在我自己的项目中修复了你的第一个错误,但我似乎无法修复第二个部分。在

ifdown wlan0已更改为ifconfig wlan0 down ifup到ifconfig wlan0 up

所以,改变方案.py此wifi包中的脚本如下:

    subprocess.check_output(['/sbin/ifdown', self.interface], stderr=subprocess.STDOUT)

改为:

^{pr2}$

我自己现在还在做第二件事。在

祝你好运!在

请确保在中配置了接口

/etc/network/interfaces

我的配置,例如:

auto wlp7s0
iface wlp7s0 inet loopback

相关问题 更多 >