擅长:python、mysql、java
<p>尽管<code>subprocess</code>有很多优点,但它并不能很清楚地说明当<em>尝试执行命令时发生了错误。在</p>
<p>{{{cd4}在另一个<cd4}>调用之前,{cd4}意味着在一个<cd4}>帧中发生了一个<cd4}>的错误。在</p>
<p>实际粘贴的异常是<code>OSError: [Errno 13] Permission denied</code>。<code>13</code>的<code>errno</code>对应于<code>EACCES</code>:</p>
<pre><code>>>> import errno; print errno.errorcode[13]
EACCES
</code></pre>
<p>如果您从未使用过<code>fork(2)</code>或<code>exec(2)</code>的话,事情将变得非常难以捉摸,因为<code>subprocess</code>已经放弃了真正的回溯。但是,我可以告诉你这个<code>OSError</code>几乎肯定来自<code>exec*</code>调用。结果是<code>execve</code>在以下条件下引发了这个问题:</p>
^{pr2}$
<p>(由<a href="https://developer.apple.com/library/ios/documentation/System/Conceptual/ManPages_iPhoneOS/man2/execve.2.html" rel="nofollow" title="Apple">Apple</a>提供)</p>
<p>如果我不得不猜测,您遇到了这个异常,因为您尝试运行的命令没有标记为可执行(带有类似<code>chmod u+x</code>)的内容。在</p>
<p>现在,解决这个问题后,<code>.exe</code>文件不太可能在Mac上运行,但至少它会是一个不同的错误!在</p>