Как установить NodeBox для консоли

Я работаю над OS X Mavericks и хочу использовать модули NodeBox в сценариях Python.

Сообщение о том, как установить модули для консоли, относится к 2009 году и больше не работает, так как это относится к версии 1.9.x (текущий 3.0.40). Также источника SVN больше нет. Источники доступны в GitHub.

Путем клонирования проекта и запуска:

ant run 

все, что я получаю, это сборка настольной версии.

Как правильно установить и запустить обновленные модули NodeBox в сценариях Python?

One Solution collect form web for “Как установить NodeBox для консоли”

Как сказано в документах здесь, в разделе 2. Установка модуля NodeBox :

Если вы хотите использовать NodeBox из командной строки, вам придется его установить. В настоящее время мы рекомендуем использовать Subversion для захвата копии:

svn co http://dev.nodebox.net/svn/nodebox/trunk/ nodebox
...
cd src
python setup.py install

мы должны установить обычный путь из источника, но, как вы говорите, процедура довольно устарела. Источник, по-видимому, перешел из SVN в GitHub на https://github.com/nodebox/nodebox-pyobjc, как указано на странице загрузки, и структура исходного пакета также изменилась.

Давайте возьмем источник и попытаемся установить его:

 $ git clone https://github.com/nodebox/nodebox-pyobjc.git $ cd nodebox-pyobjc $ python nodebox/setup.py install Traceback (most recent call last): File "nodebox/setup.py", line 17, in <module> import nodebox ImportError: No module named nodebox 

Поэтому setup.py необходимо импортировать пакет nodebox, давайте добавим корневой каталог проекта в путь Python, чтобы можно было найти пакет nodebox и повторить попытку:

 $ export PYTHONPATH=$PYTHONPATH:. $ python nodebox/setup.py install ... clang: error: no such file or directory: 'nodebox/ext/cGeo.c' clang: error: no input files error: command 'clang' failed with exit status 1 

Теперь выясняется, что некоторые пути lib в setup.py ошибочны, никто не использовал это некоторое время, пока libs перемещались, но мы можем это исправить:

 # ext_modules = [ # Extension('cGeo', ['nodebox/ext/cGeo.c']), # Extension('cPathmatics', ['nodebox/ext/cPathmatics.c']), # Extension('cPolymagic', ['nodebox/ext/gpc.c', 'nodebox/ext/cPolymagic.m'], extra_link_args=['-framework', 'AppKit', '-framework', 'Foundation']) # ] ext_modules = [ Extension('cGeo', ['libs/cGeo/cGeo.c']), Extension('cPathmatics', ['libs/pathmatics/pathmatics.c']), Extension('cPolymagic', ['libs/polymagic/gpc.c', 'libs/polymagic/polymagic.m'], extra_link_args=['-framework', 'AppKit', '-framework', 'Foundation']) ] 

Попробуйте установить еще раз:

 $ python nodebox/setup.py install ... running install_egg_info Writing <python>/lib/python2.7/site-packages/NodeBox-1.9.7rc2-py2.7.egg-info $ pip list ... NodeBox (1.9.7rc2) ... 

Теперь пакет успешно установлен и мы сможем его использовать:

 $ python >>> import nodebox >>> dir(nodebox) ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'get_version'] >>> nodebox.__version__ '1.9.7rc2' 

Кроме того, вам все равно придется вручную устанавливать некоторые зависимости для того, чтобы все работало правильно, как указано в самой setup.py:

 # We require some dependencies: # - PyObjC # - psyco # - py2app # - cPathMatics (included in the "libs" folder) # - polymagic (included in the "libs" folder) # - Numeric (included in the "libs" folder) # - Numpy (installable using "easy_install numpy") 

Я уже создал запрос на pull с фиксированными установками setup.py lib, см. Здесь .

Протестировано на OS X Mavericks (версия системы: OS X 10.9.3 (13D65), версия ядра: Darwin 13.2.0) с использованием Homebrew Python 2.7.6.

  • Использование scipy.stats.stats в django после развертывания
  • Python: совместное использование общего кода среди семейства скриптов
  • Как использовать магию IPython в скрипте для автоматической перезагрузки модулей?
  • Intellij / Pycharm не может отлаживать модули Python
  • Сложность установки модуля PyEnchant на Mac с использованием Python 2.7
  • Предотвращение кэширования Python импортированными модулями
  • Что такое модуль heapq Python?
  • Как использовать пользовательские классы с Apache Spark (pyspark)?
  • Python - лучший язык программирования в мире.