Запуск библиотеки Graph с nodebox в Windows + нет ошибки типа

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

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

Я пошел и скопировал его, как он есть, в папку с пакетами сайта, а затем запустил примеры, которые он дал, в 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)

person Community    schedule 26.05.2011    source источник


Ответы (1)


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


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

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

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

введите здесь описание изображения

person samplebias    schedule 26.05.2011
comment
С этим ответом есть небольшая проблема, он дает указания для пользователей Mac OS X, в то время как в анкете его ОС указана как Windows. - person joar; 27.05.2011
comment
Да, упоминание библиотеки Graph меня сбило с толку — она работает только на Mac. Обновлен ответ с этой информацией и обходным путем. - person samplebias; 27.05.2011