Как правильно использовать подпроцессы. Открыть правильно на Windows XP? - показывает Windowserror 2 при доступе к Npm - PullRequest
0 голосов
/ 20 февраля 2012

Я пытаюсь запустить существующий код Python и у меня возникают проблемы с ним.

Эта программа требовала установки программы npm, которая установлена ​​в C: \ Program Files \ nodejs \ npm на моем компьютере. Когда я запускаю следующий код, как часть всей программы, он выдает ошибки.

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()

Это полный стек сгенерированной ошибки -

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

1 Ответ

0 голосов
/ 20 февраля 2012

Я согласен с Мартино, он не может найти какой. Сценарий, возможно, был написан с предположением, что он будет работать в среде Unix, которая, скорее всего, будет иметь команду «which» и в PATH по умолчанию. Поскольку, похоже, вы работаете в Windows, я не думаю, что это сработает.

Похоже, что есть некоторые альтернативы, которые в Windows обсуждались здесь: Есть ли эквивалент в Windows?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...