1

我有 python2 和 python3,我运行 ./configure 并且它可以工作。但是我运行 make,

make -C out BUILDTYPE=Release V=1

make[1]: 进入目录`/home/colin4124/MyProgram/node/out'
  LD_LIBRARY_PATH=/home/colin4124/MyProgram/node/out/Release/lib.host:/home/colin4124/MyProgra>m/node/out/Release/lib.target:$LD_LIBRARY_PATH; 导出 LD_LIBRARY_PATH;cd ../deps/v8/tools/gyp;mkdir -p /home/colin4124/MyProgram/node/out/Release/obj/gen; python ../../tools/gen-postmortem-metadata.py "/home/colin4124/MyProgram/node/out/Release/obj/gen/debug-support.cc" ../../src/objects. h ../../src/objects-inl.h
回溯(最近一次通话最后):
  文件“../../tools/gen-postmortem-metadata.py”,第 479 行,在
    发射配置();
  文件“../../tools/gen-postmortem-metadata.py”,第 432 行,在 emit_config 中
    out = file(sys.argv[1], 'w');
NameError:未定义全局名称“文件”
make[1]: *** [/home/colin4124/MyProgram/node/out/Release/obj/gen/debug-support.cc] 错误 1
make[1]: 离开目录`/home/colin4124/MyProgram/node/out'
make: *** [节点] 错误 2

我怎么能解决它,想想你!

4

2 回答 2

3

看起来您的默认 Python 是 3.x,但 Node 构建脚本需要 Python 2.x。

根据这些说明,您可以通过将PYTHON环境变量设置为指向您的 Python 2 可执行文件来修复它:

export PYTHON=`which python2`
于 2013-03-22T13:32:46.677 回答
0

这是因为您的默认设置pythonpython3.x. Node.js 推荐python2.6/python2.7编译源码。
尝试python通过以下方式检查您的命令:

ls -l /usr/bin/python

它会显示lrwxrwxrwx 1 root root 9 Apr 3 15:46 /usr/bin/python -> python3

python2.7作为默认python命令使用:

sudo ln -sf `which python2.7` `which python`
ls -l /usr/bin/python

现在应该是lrwxrwxrwx 1 root root 9 Apr 3 15:46 /usr/bin/python -> python2.7

于 2014-04-03T09:27:08.157 回答