node-waf: ImportError: No module named Scripting auf Linux beheben

English Deutsch

Problem:

Beim Ausführen von node-waf erhältst du die folgende Fehlermeldung:

node_waf_traceback.txt
Traceback (most recent call last):
File "/usr/local/bin/node-waf", line 14, in <module>
import Scripting
ImportError: No module named Scripting

Dies verhindert auch die Kompilierung von Node-Modulen mit nativen Komponenten.

Lösung

Du verwendest wahrscheinlich den n NodeJS-Versionmanager. node-waf erwartet eine Datei namens Scripting.py in /usr/local/lib/node/wafdmin/, die in deinem Fall nicht vorhanden ist.

Leider erstellt n (zumindest bis Version 0.7.3) diese Datei nicht.

Um das Problem zu beheben, führe Folgendes aus (ersetze 0.8.11 durch die NodeJS-Version, die du aktuell verwendest. Sie muss von n verwaltet werden, damit dies funktioniert):

create_wafadmin_symlink.sh
ln -sf /usr/local/n/versions/0.8.11/lib/node/wafadmin/ /usr/local/lib/node/

Du kannst auch dieses automatische Bash-Skript verwenden, das automatisch deine NodeJS-Version bestimmt, vorausgesetzt node verweist auf die von n verwaltete NodeJS-Version.

create_wafadmin_symlink_auto.sh
ln -sf /usr/local/n/versions/`node --version | cut -c2-`/lib/node/wafadmin/ /usr/local/lib/node/

Update (13. Jan 2013): Automatische Methode zur Bestimmung der NodeJS-Version hinzugefügt; ln -f-Flag hinzugefügt, um fehlerhafte bestehende Links zu überschreiben


Check out similar posts by category: NodeJS