如何安装NodeBox for console

时间:2014-06-19 09:35:59

标签: python python-2.7 python-module nodebox

我正在研究OS X Mavericks,并希望在Python脚本中使用NodeBox模块。

关于如何安装控制台模块的帖子是从2009年开始的,不再适用,因为这是指版本1.9.x(当前为3.0.40)。此外,SVN源不再存在。这些消息来源可以在GitHub上找到。

通过克隆项目并运行:

ant run

我得到的只是桌面版的构建。

如何在Python脚本中正确安装和运行最新的NodeBox模块?

1 个答案:

答案 0 :(得分:2)

2中的文档here中所述。安装NodeBox模块

  

如果要从命令行使用NodeBox,则必须安装它。我们目前建议使用Subversion来获取副本:

     

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

我们应该从源代码安装通常的方法,但正如你所说的那样,程序已经过时了。如https://github.com/nodebox/nodebox-pyobjc所述,源代码显然已从download page从SVN移至GitHub,源包结构也发生了变化。

让我们抓住源代码并尝试安装它:

$ 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

现在结果发现setup.py中的一些lib路径是错误的,当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")

我已经使用固定的setup.py lib路径创建了一个pull请求,请参阅here

使用Homebrew Python 2.7.6在OS X Mavericks(系统版本:OS X 10.9.3(13D65),内核版本:Darwin 13.2.0)上测试。