لا يمكن تكوين node.js لإجراء تثبيت على OS X (Snow Leopard)
سؤال
لقد قمت باستنساخ Node 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
إذا فهمت ، فإن فاصلة الفاصلة هي بناء جملة عفا عليها الزمن لا تعمل على بيثون 3 ، أليس كذلك؟
أفضل عدم تثبيت إصدار قديم من Python فقط للقيام بذلك. من الناحية المثالية ، أود أن أكون قادرًا على إنشاء وتثبيت أحدث إصدار ، بدلاً من الاعتماد على الآخرين لتوزيع ملفات .DMG.
موسيقى الروك والمكان الصعب؟ توصيات؟
تحديث] حسنًا ، لذا بفضل كل من ساعد في الإجابة على هذا السؤال. نأمل أن يجد الآخرون هذا على Google. كما اتضح أن لدي Python 2.x على نظامي (يتم تثبيته افتراضيًا على OS X) تحت /usr /bin. لذلك كان الحل هو تحديث طريقي (ليس بشكل دائم ، فقط لهذه الجلسة باش الواحدة).
$ export PATH=/usr/bin:$PATH
$ ./configure
$ make
$ make install
تادا! تم تثبيت العقدة على نظامي.
المحلول
أناصفحة مشروع WAF يقول
يتم الحفاظ على التوافق من Python 2.3 إلى 3.1 (و Jython 2.5)
أعتقد أنه يفعل هذا حاليًا عن طريق تشغيل 2to3.py عند تفريغه ، لذا إذا كنت قد ركضت أولاً مع Python2 ، فقد يكون من الخطأ. فرع WAF1.6 أعتقد أنه نظيف Python3
اقرأ ال رمز Node.JS قامت العقدة بتوسيع WAF - وهو ما لا يُقصد به استخدام WAF. يتم وضع الفكرة الثنائية WAF في الكود المصدر - سيتوسع هذا باستخدام الإصدار الصحيح من Python
لدى OSX Python 2 ، لذا قد تكون طريقة تشغيل البناء هي تحرير Makefile الجذر واستبدال السطر الأول
WAF=python tools/waf-light
بواسطة
WAF=/usr/bin/python tools/waf-light
نصائح أخرى
نعم الفاصلة عفا عليها الزمن: انظر http://www.python.org/dev/peps/pep-3110/
لسوء الحظ ، لا يوجد حل كبير ، إذا التزمت بـ Python3 ، فسيتعين عليك تعديل رمز العقدة لجعله يعمل.