转自 https://blog.csdn.net/qq_23948283/article/details/109159713
在windows下启动atxserver2-android-provider时,出现错误:
Traceback (most recent call last):
File "C:/atxserver2-android-provider/main.py", line 247, in device_watch
await device.init()
File "C:\atxserver2-android-provider\device.py", line 62, in init
await self._init_forwards()
File "C:\atxserver2-android-provider\device.py", line 162, in _init_forwards
self._atx_proxy_port = await self.proxy_device_port(7912)
File "C:\atxserver2-android-provider\device.py", line 214, in proxy_device_port
silent=True)
File "C:\atxserver2-android-provider\device.py", line 222, in run_background
p = subprocess.Popen(*args, **kwargs)
File "C:\Users\huangpingyi\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 800, in init
restore_signals, start_new_session)
File "C:\Users\huangpingyi\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 1207, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。
原因:
在device.init()里面会通过adb命令执行脚本。但是在Windows上,当 shell=True 时它会使用 cmd.exe
解决办法:
修改device.py文件:
在subprocess对应行加上shell=true 参数即可:
p = subprocess.Popen(*args, **kwargs, shell=True)