linux命令产生Python OSError:[Errno 2]没有这样的文件或目录

时间:2015-03-05 08:15:09

标签: python linux shell networking command

我有问题......

import sys
import subprocess
subprocess.call(['traceroute -I www.yahoo.com'])

我试过

import sys
import subprocess    
subprocess.call(['/usr/sbin/traceroute -I www.yahoo.com'])

为什么我收到以下错误消息:“OSError:[Errno 2]没有这样的文件或目录”。任何人都可以帮忙......谢谢!

2 个答案:

答案 0 :(得分:2)

我讨厌在不了解其根本原因的情况下回答,但我在使用子流程之前遇到了这个问题。调用参数列表确实需要一个列表 - 我假设它正在查找名称中带有空格的可执行文件,与您输入的内容完全匹配。试试这个:

import subprocess
subprocess.call(['traceroute', 'www.yahoo.com'])

答案 1 :(得分:1)

import sys
import subprocess
subprocess.call('traceroute -I www.yahoo.com',shell=True)

您可以使用shell=True选项执行此操作。