Мой план:
Я пытаюсь настроить мой проект C # для связи с Nodebox, чтобы вызвать определенную функцию, которая заполняет график и рисует его в новом окне.
Текущая ситуация: [исправлено ... см. Обновление2]
Я уже включил все необходимые модули python, но я все еще получаю
Library 'GL' not found
похоже, что для модуля pyglet
нужна ссылка на GL/gl.h
, но он не может найти его из-за поведения IronPython.
Требования:
Проект должен оставаться как можно меньше без установки новых пакетов. Вот почему я скопировал все свои модули в папку проекта и хотел бы сохранить это так или иным способом.
Мой вопрос:
Есть ли какой-нибудь обходной путь для моей проблемы или исправление несоответствия папок библиотеки.
Прочитал несколько статей о Tao-Opengl
и OpenTK
, но не могу найти хорошее решение.
Update1:
Обновлен мой исходный код с небольшим примером рендеринга окна pyglet. Проблема в pyglet и ссылочных c-объектах. Как мне включить их в мой c # проект, который будет называться? Пока понятия не имею ... сейчас немного экспериментирую. Держу вас в курсе.
SampleCode C #:
ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
ScriptRuntime runtime = new ScriptRuntime(setup);
ScriptEngine engine = Python.GetEngine(runtime);
ScriptSource source = engine.CreateScriptSourceFromFile("test.py");
ScriptScope scope = engine.CreateScope();
source.Execute(scope);
SampleCode Python (test.py):
from nodebox.graphics import *
from nodebox.graphics.physics import Vector, Boid, Flock, Obstacle
flock = Flock(50, x=-50, y=-50, width=700, height=400)
flock.sight(80)
def draw(canvas):
canvas.clear()
flock.update(separation=0.4, cohesion=0.6, alignment=0.1, teleport=True)
for boid in flock:
push()
translate(boid.x, boid.y)
scale(0.5 + boid.depth)
rotate(boid.heading)
arrow(0, 0, 15)
pop()
canvas.size = 600, 300
def main(canvas):
canvas.run(draw)
Update2:
Строка 139 [pyglet / lib.py] sys.platform не является win32 ... произошла ошибка. Исправил это, просто используя строку:
from pyglet.gl.lib_wgl import link_GL, link_GLU, link_WGL
Теперь следующая ошибка:
'module' object has no attribute '_getframe'
Вид боли, чтобы исправить это. Обновление с результатами ...
Update3:
Исправлено добавлением следующей строки сразу после первой строки в C # -Code:
setup.Options["Frames"] = true;
Текущая проблема:
No module named unicodedata
, но в Python26/DLLs
есть только *.pyd
file`. Итак ... как мне это реализовать сейчас?!
Update4:
Исправлено с помощью серфинга: текст ссылки и добавление unicodedata.py
и '.pyd
в папку проекта C #.
Текущая проблема:
'libGL.so not found' ... ребята .. я почти сдался на нодбокс для C # .. продолжение следует
Update5:
я сдался: / обходной путь: c # общение с нодбоксом через xml и файловую системуwatchers. Не оптимально, но дело решено.