3

您好,我正在尝试安装和使用 Python 库 NodeboxOpenGL,以便我可以使用节点和边创建自己的图形。但是我遇到了一些麻烦,从NodeBox OpenGL 站点开始。我下载了NodeBox for OpenGL,然后下载了pyglet,然后我做了easy_install nodebox-opengl。 注意我没有做 pip install 我从 pyglet 安装了pyglet。所以现在我想一切都准备好了。我快速检查了我的 c:\python27\Lib\site-packages\ 位置,确保 nodebox 文件夹在那里,一切看起来都很好。我尝试了网站上的示例程序

from nodebox.graphics import *
from nodebox.graphics.physics import Flock

flock = Flock(40, 0, 0, 500, 500)
flock.sight = 300

def draw(canvas):
    background(1)
    fill(0, 0.75)
    flock.update(cohesion=0.15)
    for boid in flock:
        push()
        translate(boid.x, boid.y)
        scale(0.5 + 1.5 * boid.depth)
        rotate(boid.heading)
        arrow(0, 0, 15)
        pop()

canvas.fps = 30
canvas.size = 600, 400
canvas.run(draw)

试图运行它,但我不断收到此错误

Traceback (most recent call last):
  File "E:\Workspace\ElasticNodes\graph1.py", line 5, in <module>
    from nodebox.graphics import *
  File "E:\Workspace\ElasticNodes\nodebox\graphics\__init__.py", line 1, in <module>
    import bezier
  File "E:\Workspace\ElasticNodes\nodebox\graphics\bezier.py", line 10, in <module>
    from context import BezierPath, PathElement, PathError, Point, MOVETO, LINETO, CURVETO, CLOSE
  File "E:\Workspace\ElasticNodes\nodebox\graphics\context.py", line 29, in <module>
    import geometry
  File "E:\Workspace\ElasticNodes\nodebox\graphics\geometry.py", line 454, in <module>
    from pyglet.gl import \
ImportError: cannot import name pointer

我尝试修改python脚本,即 在您的脚本中,将NodeBox的位置添加到sys.path,然后再导入它:>>> MODULE = '/users/tom/python/nodebox' >>> import sys; 如果 MODULE 不在 sys.path 中: sys.path.append(MODULE) >>> import nodebox

但仍然是同样的错误。我正在使用 Python2.7,在 Windows 上运行。我不确定我做错了什么。有没有人有在 Windows 上运行这个库的经验。我究竟做错了什么

4

2 回答 2

1

也许这可以帮助你:

  1. geometry.py 中删除“指针”导入。将指针(数据)替换为指针(数据)
  2. 我还有另一个错误,所以也许你需要将导入添加到“ shaders.py ”:from ctypes import c_uint
于 2015-02-17T23:23:25.873 回答
0

我在 Linux 上遇到了类似的问题。Nodebox-opengl 站点 ( http://www.cityinabottle.org/nodebox/ ) 说必须使用 python 2.5 或 2.6,因此问题可能是您使用的是 2.7。

编辑:好的,我先用 pip 安装了 pyglet(和或 apt-get,我都做了),我没有遇到 pyglet 的问题。但我仍然遇到其他问题。

于 2015-01-14T14:31:52.393 回答