Mein Plan:Ironpython und Nodebox in C#
Ich versuche, meine C# Projekt-Setup mit Nodebox zu kommunizieren, um eine bestimmte Funktion zu nennen, die eine grafische Darstellung auffüllt und zieht es in einem neuen Fenster.
aktuelle Situation: [fixed ... siehe Update2]
ich bereits enthalten sind alle Python-Module benötigt, aber im noch ein
Library 'GL' not found
es scheint, dass die pyglet
Modul Bedürfnisse bekommen ein Verweis auf GL/gl.h
, kann aber aufgrund des IronPython-Verhaltens nicht gefunden werden.
Voraussetzung:
Das Projekt so gering wie möglich bleiben muss, ohne dass neue Pakete zu installieren. Deshalb habe ich alle meine Module in den Projektordner kopiert und möchte diesen oder einen ähnlichen Weg beibehalten.
Meine Frage:
Gibt es eine bestimmte Abhilfe für mein Problem oder ein Update für die Bibliothek-Ordner missmatch. Habe einige Artikel über Tao-Opengl
und OpenTK
gelesen, kann aber keine gute Lösung finden.
Update1:
Aktualisierte meinen Quelltext mit einem kleinen Pyglet Fenster-Rendering-Beispiel. Problem ist in Pyglet und referenzierte c-Objekte. Wie schließe ich sie in mein C# -Projekt ein, um angerufen zu werden? Keine Ahnung bis jetzt ... experimentierfreudig jetzt. Halten Sie auf dem Laufenden.
Sample 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);
Sample 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:
Zeile 139 [pyglet/lib.py] sys.platform ist nicht win32 ... da war der Fehler. Regelt es nur um mit der Zeile:
from pyglet.gl.lib_wgl import link_GL, link_GLU, link_WGL
nun folgende Fehler:
'module' object has no attribute '_getframe'
eine Art Schmerz, es zu beheben. Aktualisierung mit Ergebnissen ...
Update3:
Fest durch folgende Zeile direkt nach der ersten Zeile in C# -Code und fügte hinzu:
setup.Options["Frames"] = true;
Aktuelles Problem:
No module named unicodedata
, aber in Python26/DLLs
nur ein *.pyd
Datei`. Also ... wie implementiere ich es jetzt ?!
Update4:
durch Surfen Fixed: link text und das Hinzufügen von unicodedata.py
und '.pyd
zu C# Projectfolder.
Aktuelles Problem:
'libGL.so nicht gefunden' ... Jungs .. im fast Aufgeben auf nodebox für .. C# fortgesetzt
Update5 werden:
Ich gab auf:/Workaround: C# Kommunikation mit Knoten über XML und Dateisystemwächter. Nicht optimal, aber Fall gelöst.
gefunden folgenden Artikel über '_getframe': http://ironpython.codeplex.com/workitem/1042?ProjectName=ironpython Und ich weiß immer noch nicht, wie es zu beheben .. Was bedeutet -X: Frame-Option bedeuten? – proxylittle