[英]Python can't execute terminal script, using sh nor bash [duplicate]
这个问题已经在这里有了答案:
我希望你们能帮助我解决这个问题,因为我真的被卡住了。。。我正在尝试从python执行程序,由于某种原因,它不起作用。 该脚本位于:
path/to/teqc
我已经将这一行添加到.bashrc文件中:
alias teqc='path/to/teqc'
而且,当我跑步时
teqc -tr d input >output
在终端上工作正常...但是,如果我在python程序上运行它,则显示:
sh: teqc: command not found
我一直在python上使用的代码是:
os.system('teqc -tr d input >output')
我尝试使用
subprocess.Popen('teqc -tr d input >output', shell=True, executable="/bin/bash")
但是唯一的结果是将错误消息更改为
/bin/bash: teqc: command not found
任何帮助将非常感激 :)
我忘了指定PD,操作系统是Fedora 21
我建议创建一个指向程序的符号链接。
ln -s /path/to/teqc /usr/bin/teqc
我认为问题在于,使用子流程在代码中运行命令时,环境变量PATH不相同。
您可以做的另一件事是,在使用子进程执行命令之前,先设置代码环境,然后os模块附带一个os.environ词典,该词典可用于使用类似以下内容的路径
import os import subprocess os.environ['PATH'] += ":/path/to/teqc" subprocess.Popen(['teqc -tr d input'],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.