安装nodejs时出现 "except Error as e SyntaxError

1 投票
2 回答
953 浏览
提问于 2025-04-18 14:08

我最近在我的VPS上安装nodejs,折腾了一段时间。因为我用的是CentOs 5.6,所以我得从源代码编译它。
而且我需要把python 2.7设置为默认的python,因为我这台机器上的默认python是2.4。
我从源代码编译了python,成功安装在了/usr/local/bin/python2.7这个路径下。

现在的问题是,当我在nodejs的目录里运行make命令时,出现了一些错误。

.
.
.
  LD_LIBRARY_PATH=/root/node/out/Release/lib.host:/root/node/out/Release/lib.tar
get:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/tools/gyp; mkdir -p
/root/node/out/Release/obj/gen; python ../../tools/generate-trig-table.py "/root
/node/out/Release/obj/gen/trig-table.cc"
  touch /root/node/out/Release/obj.host/deps/v8/tools/gyp/generate_trig_table.st
amp
  LD_LIBRARY_PATH=/root/node/out/Release/lib.host:/root/node/out/Release/lib.tar
get:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps/v8/tools/gyp; mkdir -p
/root/node/out/Release/obj/gen; python ../../tools/js2c.py "/root/node/out/Relea
se/obj/gen/libraries.cc" CORE off ../../src/runtime.js ../../src/v8natives.js ..
/../src/array.js ../../src/string.js ../../src/uri.js ../../src/math.js ../../sr
c/messages.js ../../src/apinatives.js ../../src/debug-debugger.js ../../src/mirr
or-debugger.js ../../src/liveedit-debugger.js ../../src/date.js ../../src/json.j
s ../../src/regexp.js ../../src/arraybuffer.js ../../src/typedarray.js ../../src
/weak_collection.js ../../src/promise.js ../../src/object-observe.js ../../src/m
acros.py
  File "../../tools/js2c.py", line 387
    except Error as e:
                  ^
SyntaxError: invalid syntax
make[1]: *** [/root/node/out/Release/obj/gen/libraries.cc] Error 1
make[1]: Leaving directory `/root/node/out'
make: *** [node] Error 2

我在某个地方看到,Exception的语法从python 2.6开始有了变化,我猜测可能是用到了旧版的python,所以我做了一些尝试,但没有什么效果:

PYTHON=/usr/local/bin/python2.7
export PYTHON
python2.7 configure && make && make install

现在我在想,我该怎么继续进行呢?

2 个回答

1

全大写的 PYTHON 是一个有效的环境变量吗?

http://www.wellho.net/resources/ex.php4?item=y115/penv.py

我觉得你可能更想创建一个指向正确的 Python 解释器的符号链接。

ln -s /usr/local/bin/python2.7 /usr/local/bin/python
2

我觉得你需要把python2.7放在路径的最前面,然后运行:

export PATH=/usr/local/bin:${PATH}
python2.7 configure && make && make install

如果这样还不行,可能是某个Python脚本在找python。你可以通过创建一个符号链接来解决这个问题,像这样:

mkdir /tmp/py27
ln -s /usr/local/bin/python2.7 /tmp/py27/python
export PATH=/tmp/py27:${PATH}
python configure && make && make install

撰写回答