jur*_*ndl 7 python python-module python-2.7 nodebox
我正在研究OS X Mavericks,并希望在Python脚本中使用NodeBox模块.
关于如何为控制台安装模块的帖子是从2009年开始的,不再适用,因为它引用版本1.9.x(当前为3.0.40).此外,SVN源不再存在.这些消息来源可以在GitHub上找到.
通过克隆项目并运行:
ant run
Run Code Online (Sandbox Code Playgroud)
我得到的只是桌面版的构建.
如何在Python脚本中正确安装和运行最新的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
Run Code Online (Sandbox Code Playgroud)
所以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
Run Code Online (Sandbox Code Playgroud)
现在发现 setup.py 中的一些库路径是错误的,当库移动时可能有一段时间没有人使用它,但我们可以修复它:
# 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'])
]
Run Code Online (Sandbox Code Playgroud)
再次尝试安装:
$ 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)
...
Run Code Online (Sandbox Code Playgroud)
现在软件包已成功安装,我们应该可以使用它:
$ python
>>> import nodebox
>>> dir(nodebox)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', 'get_version']
>>> nodebox.__version__
'1.9.7rc2'
Run Code Online (Sandbox Code Playgroud)
此外,您可能仍然需要手动安装一些依赖项才能使所有内容正常工作,如 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")
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个带有固定 setup.py lib 路径的拉取请求,请参阅此处。
使用 Homebrew Python 2.7.6 在 OS X Mavericks(系统版本:OS X 10.9.3 (13D65),内核版本:Darwin 13.2.0)上进行测试。
| 归档时间: |
|
| 查看次数: |
895 次 |
| 最近记录: |