编译Node.js显示为"NameError: global name 'file' is not defined"



我有python2和python3,我运行。/configure,它工作。但是我运行make

<>之前make -C out BUILDTYPE=Release V=1make[1]:输入目录'/home/colin4124/MyProgram/node/out'LD_LIBRARY_PATH =/home/colin4124/MyProgram/节点//释放/lib.host:/home/colin4124 MyProgra> m/节点//释放/lib.target: LD_LIBRARY_PATH美元;出口LD_LIBRARY_PATH;cd . ./deps/v8/工具/诈欺行为;mkdir -p/home/colin4124/MyProgram/node/out/Release/obj/gen;/home/colin4124/MyProgram/node/out/Release/obj/gen/debug-support. python ../tools/gen- postmortemp -metadata.py "Cc"../../src/objects.h ./src/objects-inl.h .回溯(最近一次调用):文件"../../tools/gen-postmortem-metadata.py",第479行emit_config ();文件"../../tools/gen-postmortem-metadata.py",第432行,在emit_config .py中Out = file(sys.)argv [1], ' w ');NameError:全局名称"file"没有定义make[1]: *** [/home/colin4124/MyProgram/node/out/Release/obj/gen/debug-support。错误1make[1]:离开目录'/home/colin4124/MyProgram/node/out'make: *** [node] Error之前

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

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

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

export PYTHON=`which python2`

这是因为您的默认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

最新更新