how to use subproces.Popen correctly on windows xp?- shows windowserror 2 while accessing npm

StackOverflow https://stackoverflow.com/questions/9366362

Pergunta

I am trying to run an existing python code, and having issues with it.

This program required npm program installed and which is installed at C:\Program Files\nodejs\npm in my computer. When I run the following code, as a part of the whole program, it throws errors.

def popen_results(args):
   proc = subprocess.Popen(args, stdout=subprocess.PIPE)
   return proc.communicate()[0]

def installed():
   """docstring for npm_installed"""
   return popen_results(["which", "npm"]).strip()

This is the complete stack of the error thrown--

Checking for node and dependencies
Traceback (most recent call last):
  File "deploy\deploy.py", line 344, in <module>
    main()
  File "deploy\deploy.py", line 287, in main
    if not check_deps():
  File "deploy\deploy.py", line 201, in check_deps
    return npm.check_dependencies()
  File "C:\Documents and Settings\Sunil\workspace\khan\src\deploy\npm.py", line
38, in check_dependencies
    if not installed():
  File "C:\Documents and Settings\Sunil\workspace\khan\src\deploy\npm.py", line
13, in installed
    return popen_results(["which", "npm"]).strip()
  File "C:\Documents and Settings\Sunil\workspace\khan\src\deploy\npm.py", line
8, in popen_results
    proc = subprocess.Popen(args, stdout=subprocess.PIPE)
  File "C:\python25\lib\subprocess.py", line 594, in __init__
    errread, errwrite)
  File "C:\python25\lib\subprocess.py", line 822, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Foi útil?

Solução

I agree with martineau, it is unable to find which. The script may have been written with the assumption it was going to be run in a unix environment which would most likely have the "which" command available and in the default PATH. Since it looks like you're running this on Windows, I don't think it's going to work.

It looks like there is some alternatives to which on Windows though, discussed here: Is there an equivalent to which on Windows?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top