Запуск библиотеки графиков с нодбоксом на окнах + ошибка типа - PullRequest
1 голос
/ 27 мая 2011

Я установил нодбокс 2 для Windows на моем компьютере и проверил, что все примеры работают как есть.

Теперь я хочу использовать библиотеку графов График для того же.

Я пошел и скопировал его как есть в моей папке site-packages, а затем запустил примеры, которые он привел вместе с ним в IDLE.

Я получил ошибку ximport . Итак, я добавил в коде from nodebox.graphics import *

Теперь я получаю следующую ошибку

Traceback (most recent call last):

File "C:\Python26\Lib\site-packages\graph\graph_example2.py", line 39, in <module> g.draw(highlight=path, weighted=True, directed=True)

File "C:\Python26\lib\site-packages\graph\__init__.py", line 453, in draw self.update()

File "C:\Python26\lib\site-packages\graph\__init__.py", line 416, in update self.x = _ctx.WIDTH - max.x*self.d - min_.x*self.d

AttributeError: 'NoneType' object has no attribute 'WIDTH'

Можно ли как-нибудь запустить эту библиотеку извне nodebox в Windows?

спасибо ...

Я вставляю код, для которого я получаю ошибку ниже ...

from nodebox.graphics import *
try:
    graph = ximport("graph")
except ImportError:
    graph = ximport("__init__")
    reload(graph)

size(600, 600)

# A graph object.
g = graph.create(iterations=500, distance=1.0)

# Add nodes with a random id,
# connected to other random nodes.
for i in range(50):
    node1 = g.add_node(random(500))
    if random() > 0.5:
        for i in range(choice((2, 3))):
             node2 = choice(g.nodes)
             g.add_edge(node1.id, node2.id, weight=random())

# We leave out any orphaned nodes.
g.prune()

# Colorize nodes.
# Nodes with higher importance are blue.
g.styles.apply()

# Update the graph layout until it's done.
g.solve()

# Show the shortest path between two random nodes.
path = []
id1 = choice(g.keys())
id2 = choice(g.keys())
path = g.shortest_path(id1, id2)

# Draw the graph and display the shortest path.
g.draw(highlight=path, weighted=True, directed=True)

1 Ответ

2 голосов
/ 27 мая 2011

Документы Nodebox Graph упоминают , что он поддерживает Nodebox 1.9.5.6, который является номером версии Nodebox 1 (только для Mac). Насколько мне известно, библиотека Graph еще не была портирована на Nodebox 2, поэтому в настоящее время может работать только на Mac.


Одной из опций является проект под названием Nodebox OpenGL, который реализует API-интерфейс Nodebox и включает в себя собственную библиотеку графов с примером использования в examples\08-physics\07-graph. Библиотека графов Nodebox 1 еще не совместима, но она включает собственный класс графов nodebox.graphics.physics.Graph.

Чтобы использовать его, вам необходимо скачать:

Извлеките их и установите или просто поместите пакеты nodebox и pyglet где-нибудь по пути Python (site-packages). Когда вы запустите 07-graph.py, вы должны увидеть это:

enter image description here

...