【问题标题】:Can't configure node.js for make install on OS X (Snow Leopard)无法在 OS X (Snow Leopard) 上配置 node.js 进行安装
【发布时间】:2011-05-22 07:59:28
【问题描述】:

我克隆了 node git repo,但是 node 附带的“waf”构建工具似乎不适用于最新版本的 Python。

$ ./configure
Traceback (most recent call last):
  File "/Users/greim/nodestuff/node/tools/waf-light", line 157, in <module>
    import Scripting
  File "/Users/greim/nodestuff/node/tools/wafadmin/Scripting.py", line 146
    except Utils.WafError, e:
                         ^
SyntaxError: invalid syntax
$ which python
/Library/Frameworks/Python.framework/Versions/3.0/bin/python

如果我理解,逗号是一种过时的语法,不适用于 Python 3,对吧?

我宁愿不安装旧版本的 Python 来执行此操作。理想情况下,我希望能够构建和安装最新版本,而不是依赖其他人分发 .dmg 文件。

摇滚和坚硬的地方?推荐?


[update] 好的,感谢所有帮助回答这个问题的人。希望其他人会在谷歌上找到这个。事实证明,我的系统上确实有 Python 2.x(它默认安装在 OS X 上),位于 /usr/bin 下。所以解决方案是更新我的路径(不是永久的,只是为了这个 bash 会话)。

$ export PATH=/usr/bin:$PATH
$ ./configure
$ make
$ make install

多田!节点已安装在我的系统上。

【问题讨论】:

    标签: python node.js waf


    【解决方案1】:

    the waf project page

    保持从 Python 2.3 到 3.1(和 Jython 2.5)的兼容性

    我认为它目前通过在解包时运行 2to3.py 来做到这一点,所以如果你先用 python2 运行,那么它可能是错误的。我认为的waf1.6分支是python3 clean

    阅读node.js code 节点人们扩展了 waf - 这不是您使用 waf 的方式。想法是将 waf 二进制文件放入源代码中 - 这将使用正确版本的 python 进行扩展

    OSX 确实有 python 2,因此运行构建的一种方法可能是编辑根 makefile 并替换第一行

    WAF=python tools/waf-light
    

    WAF=/usr/bin/python tools/waf-light
    

    【讨论】:

    • 好吧,我在终端上输入了 /user/bin/python,天哪,有 python 2.6.1。谁知道。 (显然你做到了。)谢谢。
    • 是的,所以解决问题很简单,只需更新我的 PATH 以便 /user/bin 优先。
    • 您可能会将此作为错误报告给节点
    【解决方案2】:

    是的,逗号已过时:请参阅 http://www.python.org/dev/peps/pep-3110/

    不幸的是,没有太多的解决方案,如果你坚持使用python3,你将不得不修改节点代码才能使其工作。

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 1970-01-01
      • 2010-11-30
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2011-01-29
      • 2012-10-17
      相关资源
      最近更新 更多