我正在嘗試運行包含在platform-tools文件夾中的systrace python腳本,並且出現以下錯誤:OSError:[Errno 2]運行systrace.py時沒有這樣的文件或目錄
File "systrace.py", line 274, in <module>
main()
File "systrace.py", line 60, in main
device_sdk_version = get_device_sdk_version()
File "systrace.py", line 44, in get_device_sdk_version
stderr=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
我運行在Ubuntu 12.04 LTS上。下面是我使用運行systrace命令:
sudo python systrace.py -o output.html
注:須藤是爲了避免以下錯誤:
File "systrace.py", line 274, in <module>
main()
File "systrace.py", line 63, in main
os.execv(legacy_script, sys.argv)
OSError: [Errno 13] Permission denied
在網路世界經過一番搜索,我發現一個解決方案是將adb添加到我的PATH變量中。我將platform-tools目錄添加到我的PATH中,但仍然收到相同的錯誤。我繼續檢查,是造成該問題的代碼,顯然它的這個片段:
adb = subprocess.Popen(getprop_args, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
其中getprop_args
定義如下:
getprop_args = ['adb', 'shell', 'getprop', 'ro.build.version.sdk']
從我所理解的代碼試圖運行以下命令:
adb shell getprop ro.build.version.sdk
我在控制檯中運行命令,它沒有問題。我也複製了兩行代碼,並在python解釋器中運行它們,並且運行沒有問題。我真的不知道如何解決這個問題。有誰知道可能的解決方案?
你也應該能夠沒有 「命令」 來運行它。感謝親愛的 – fadden
,權限問題解決了我。 :) – CoDe