擅长:python、mysql、java
<p>我不知道是什么原因导致了你的问题。但我看到了一些我关心的事情:</p>
<ol>
<li><p>对于<code>subprocess.call()</code>,您应该给出一个字符串列表,第一个是可执行文件的路径,其余的是单个参数;然后您应该使用<code>shell=False</code>(或者忽略它,因为这是默认值)。<em>或者</em>您传递<code>shell=True</code>,那么您应该只传递一个字符串(不是字符串列表!)它将由shell解释和拆分,因此它应该包含可执行文件的路径和所有参数(如有必要,在引用的版本中)。在</p>
<p>所以要么</p>
<p><code>subprocess.call([ '/path/to/executable', 'arg1', 'arg2' ]) # shell=False</code></p>
<p>或者</p>
<p><code>subprocess.call('/path/to/executable "arg1" "arg2"', shell=True)</code></p></li>
<li><p>出现错误消息<code>not found</code>的原因有多种。在</p>
<p>a.指定可执行文件路径的错误方法(例如,<code>shell=True</code>和字符串列表;没有尝试过)。在</p>
<p>b.可执行文件本身不存在(但您检查了您所说的)。在</p>
<p>c.可执行文件不可执行(权限位丢失)。在</p>
<p>可执行文件在它的第一行中指定了一个不存在的解释器(使用<code>#!</code>),该解释器不存在(例如<code>#!/bin/sh</code>或类似的)。</p></li>
</ol>
<p>这些都适用吗?在</p>