【问题标题】:"except Error as e SyntaxError" when installing nodejs安装nodejs时“除了错误为e SyntaxError”
【发布时间】:2014-09-12 06:40:14
【问题描述】:

我已经尝试在我的 VPS 上安装 nodejs 有一段时间了。由于我使用的是 CentOs 5.6,因此我必须从源代码构建它。
更重要的是,我需要 python 2.7,因为我盒子上的默认 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

Somewhere 我读到Exception 语法从 python 2.6 开始发生了变化,我认为它必须使用旧的 python,所以我做了以下但没有任何区别:

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

现在我想知道我应该如何进行?

【问题讨论】:

  • PYTHONconfig.mk 中设置为什么?

标签: python node.js python-2.7 makefile


【解决方案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】:

    IMO 你需要先将 python2.7 放在路径中,然后运行:

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

    如果这不起作用,可能是其中一个 Python 脚本正在寻找 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
    

    【讨论】:

    • python2.7 configure 应该配置了PYTHON make 变量。很可能有一个陈旧的config.mk
    • @lazy1 似乎符号链接处理了它。我正在等待 make 完成。
    • @HamedMomeni:在这种情况下,node.js 项目忘记在某处参数化 PYTHON 变量。
    • @MartijnPieters 是正确的,错误就在输出中,调用 python 而不是完整路径:obj/gen; python ../../tools/js2c.py "/roo
    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2015-02-24
    • 2016-09-16
    相关资源
    最近更新 更多