Не удается настроить файл node.js для make install в OS X (Snow Leopard) - PullRequest
3 голосов
/ 29 сентября 2010

Я клонировал узел git repo, но инструмент сборки 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.

Какая проблема?Рекомендации?


[обновление] ОК, так что спасибо всем, кто помог ответить на этот вопрос.Надеюсь, другие найдут это в Google.Как оказалось, в моей системе установлен Python 2.x (он устанавливается по умолчанию в OS X) в / usr / bin.Поэтому решение состояло в том, чтобы обновить мой путь (не навсегда, только для этой одной сессии bash).

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

Тада!Узел установлен в моей системе.

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

I страница проекта waf говорит

Поддерживается совместимость с Python 2.3 до 3.1 (и Jython 2.5)

Я думаю, что в настоящее время это происходит путем запуска 2to3.py при распаковке, поэтому, если вы сначала запустили python2, то это могло бы быть неправильно. Я думаю, что ветка waf1.6 - это python3 clean

Чтение кода node.js , когда люди расширяют waf - это не то, как вы должны использовать waf. Идея заключается в том, чтобы поместить в исходный код двоичный файл waf - он будет расширяться с использованием правильной версии python

В OSX есть Python 2, поэтому одним из способов запуска сборки может быть редактирование корневого make-файла и замена первой строки

WAF=python tools/waf-light

по

WAF=/usr/bin/python tools/waf-light
1 голос
/ 30 сентября 2010

Да, запятая устарела: см. http://www.python.org/dev/peps/pep-3110/

К сожалению, решения не так много, если вы будете использовать python3, вам придется изменить код узла, чтобы он работал.

...