Python: OSError: [Errno 2] No such file or directory on subprocess.Popen

Python: OSError: [Errno 2] No such file or directory on subprocess.Popen

我已经在 .bashrc 中添加了 mytool 的路径,我可以从 bash shell 中的任何路径 运行 mytool --help。但是,当我 运行 以下片段时,我得到:

File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory

import subprocess

command_array = ['mytool', '--help']

p = subprocess.Popen(command_array,
                     stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
                    )

for line in iter(p.stdout.readline, b''):
        print(line)
p.stdout.close()

我该如何解决这个问题?

编辑:当我 运行 来自终端 (bash) 的 python 文件时,它工作正常。但是当我从 PyCharm(调试器)或其他 shell 中 运行 时,它给出了上述错误。

如何更改我的脚本,使其 运行 在 bash 中 'mytool' 而我 运行 来自其他 shell 的脚本?我需要在 .bashrc

中添加环境

将此印刷品添加到您的文件中:

import os
print os.environ['PATH']

比较 运行 来自 IDE 和终端的脚本后的输出。
您应该注意到 IDE 的 PATH 不包括 mytool 的目录。

转到:

Run/Debug Configurations -> Environment variables

添加休闲:

PATH =输出给你shellecho $PATH