python - hvordan man bruger subproces.Popen korrekt på windows xp? - viser windowserror 2 mens du åbner npm

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at køre en eksisterende python kode og har problemer med det.


Dette program krævede npm-program installeret, og som er installeret på C: \ Program Files \ nodejs \ npm på min computer. Når jeg kører følgende kode, som en del af hele programmet, kaster det fejl.


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


Dette er den komplette stack af fejlen kastet--


Checking for node and dependencies
Traceback (most recent call last):
  File "deploydeploy.py", line 344, in <module>
    main()
  File "deploydeploy.py", line 287, in main
    if not check\_deps():
  File "deploydeploy.py", line 201, in check\_deps
    return npm.check\_dependencies()
  File "C:Documents and SettingsSunilworkspacekhansrcdeploy
pm.py", line
38, in check\_dependencies
    if not installed():
  File "C:Documents and SettingsSunilworkspacekhansrcdeploy
pm.py", line
13, in installed
    return popen\_results(["which", "npm"]).strip()
  File "C:Documents and SettingsSunilworkspacekhansrcdeploy
pm.py", line
8, in popen\_results
    proc = subprocess.Popen(args, stdout=subprocess.PIPE)
  File "C:python25libsubprocess.py", line 594, in \_\_init\_\_
    errread, errwrite)
  File "C:python25libsubprocess.py", line 822, in \_execute\_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified

Bedste reference


Jeg er enig med martineau, det er ikke i stand til at finde som. Scriptet kan have været skrevet med den antagelse, at den skulle køres i et unix-miljø, som sandsynligvis vil have den 'hvilke' kommando tilgængelig og i standard PATH. Da det ser ud til at du kører dette på Windows, tror jeg ikke, det kommer til at fungere.


Det ser ud som om der er nogle alternativer, som på Windows dog diskuteret her: Er der en tilsvarende som på Windows?