擅长:python、mysql、java
<p>在Windows上,许多节点.js“二进制文件”实际上以<code>.cmd</code>文件扩展名作为后缀,在通过<code>subprocess.Popen</code>调用期间,无论出于什么原因,它都不会扩展(即使<code>PATHEXT</code>可能包含<code>.cmd</code>)。在</p>
<p>因此,为了获得正确的解决方案(不使用<code>shell=True</code>),请尝试将<code>.cmd</code>追加到节点.js需要二进制文件:</p>
<pre><code>Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.Popen(['npm.cmd', 'install'])
<subprocess.Popen object at 0x005E18B0>
>>> npm ERR! install Couldn't read dependencies
</code></pre>
<p>当然,它会抛出一个错误,因为我在那个目录中没有<code>package.json</code>。请使用其他常用程序重试,例如<code>webpack</code>:</p>
^{pr2}$
<p>好吧,再加上<code>.cmd</code>:</p>
<pre><code>>>> subprocess.Popen(['webpack.cmd'])
<subprocess.Popen object at 0x008A18B0>
>>> No configuration file found and no output filename configured via CLI option
</code></pre>