2012-04-01 6 views
1

Ich versuche Adblockplus von this link zu bauen. Wenn ich den Befehl ausstelle:Fehlermeldung, wenn ich versuche, Adblocker bauen

python build.py build 

Ich am Ende bekomme die folgende Fehlermeldung. Ich habe es mit und ohne Sudo vergebens versucht.

Traceback (most recent call last): 
    File "build.py", line 10, in <module> 
    buildtools.build.processArgs('.', sys.argv) 
    File "/home/machine/projects/weird/buildtools/build.py", line 352, in processArgs 
    commands[command](baseDir, scriptName, opts, args, type) 
    File "/home/machine/projects/weird/buildtools/build.py", line 39, in __call__ 
    return self._handler(baseDir, scriptName, opts, args, type) 
    File "/home/machine/projects/weird/buildtools/build.py", line 166, in runBuild 
    limitMetadata=limitMetadata) 
    File "/home/machine/projects/weird/buildtools/packager.py", line 274, in createBuild 
    buildNum = getBuildNum(baseDir) 
    File "/home/machine/projects/weird/buildtools/packager.py", line 80, in getBuildNum 
    (result, dummy) = subprocess.Popen(['hg', 'id', '-n'], stdout=subprocess.PIPE).communicate() 
    File "/usr/lib/python2.6/subprocess.py", line 623, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

Fehle ich ein Paket? Jeder Hinweis auf das Problem könnte sehr geschätzt werden.

Antwort

4

Der Stack-Trace macht deutlich, dass das Problem durch die folgende Zeile verursacht:

(result, dummy) = subprocess.Popen(['hg', 'id', '-n'], stdout=subprocess.PIPE).communicate() 

Wenn man sich die subprocess package documentation aussieht, wird diese Linie den hg id -n Befehl auszuführen versucht (numerische Mercurial Revision erhalten). Anscheinend ist das Mercurial-Befehlszeilentool nicht auf Ihrem System vorhanden (eine Möglichkeit, die dieses Buildskript nicht berücksichtigt hat), so dass es fehlschlägt.

Disclaimer: Ich bin zufällig derjenige, der dieses Skript geschrieben hat und ich fixed this bug jetzt. Mercurial ist für den Build nicht essentiell, die Revisionsnummer ist praktisch nur notwendig, um den Namen der Ausgabedatei zu bestimmen.

+1

Wladimir, danke und das brachte mich wieder auf die Spur des vergessenen Projekts, an dem ich arbeitete. Ich werde es nochmal versuchen. – sm535