私の計画:
Nodebox と通信してグラフを作成し、新しいウィンドウに描画する特定の関数を呼び出すように C# プロジェクトをセットアップしようとしています。
現在の状況: [修正済み... Update2 を参照]
必要なすべての python-modules を既に含めましたが、まだ
Library 'GL' not found
pyglet
モジュールには への参照が必要なようですがGL/gl.h
、IronPython の動作が原因で見つかりません。
要件:
新しいパッケージをインストールせずに、プロジェクトをできるだけ小さくする必要があります。そのため、すべてのモジュールを project-folder にコピーし、それを保持したい、または同様の方法で保持したいと考えています。
私の質問:
私の問題に対する特定の回避策や、ライブラリ フォルダーの不一致の修正方法はありますか。Tao-Opengl
andに関するいくつかの記事を読みましOpenTK
たが、適切な解決策が見つかりません。
アップデート1:
小さな pyglet ウィンドウ レンダリングの例でソースコードを更新しました。問題は pyglet と参照された c-Objects にあります。呼び出される C# プロジェクトにそれらを含めるにはどうすればよいですか? 今のところわかりません...少し実験しています。最新情報をお届けします。
サンプルコード 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);
サンプルコード 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)
アップデート2:
139行目 [pyglet/lib.py] sys.platform is not win32... エラーが発生しました。次の行を使用して修正しました:
from pyglet.gl.lib_wgl import link_GL, link_GLU, link_WGL
今、次のエラー:
'module' object has no attribute '_getframe'
それを修正するのはちょっと面倒です。結果を更新しています...
Update3:
C# コードの最初の行の直後に次の行を追加することで修正されました。
setup.Options["Frames"] = true;
現在の問題:
No module named unicodedata
、しかし inPython26/DLLs
はファイルのみ*.pyd
です`. だから..どうすれば今それを実装できますか?!
アップデート4:
サーフィンによって修正:テキストをリンクし、C# Projectfolder に and をunicodedata.py
追加します。'.pyd
現在の問題:
「libGL.so not found」... みんな.. C# の nodebox をあきらめそうになっている.. 続行する
アップデート5:
私はあきらめました:/回避策: XMLおよびファイルシステムウォッチャーを介してノードボックスと通信するc#。最適ではありませんが、問題は解決しました。