2011-01-29 8 views
2

基本的には、Pythonで独自のGUIラッパーを作成しようとしています(GTK +を使用していますが、それは関係ないと思います)共有オブジェクトファイル(linux [* nix?私はそれがMac上でどのように動作するかわかりません])またはあなた自身がAPIを使用するために参照できるはずのdll(Windowsでは) Cythonで試してみたのですが、私は自分の拡張機能を書くことができます。一つのファイルだけであれば、複数のファイルをオンラインで見つけることはできません(実際のプロジェクトPythonプロジェクトにインポートできる単一の.soにコンパイルすることができます。手動でCythonを使い、.cppファイルごとに.pyxファイルを作成し(たくさんあります)、それらをcppファイルにコンパイルしてから編集し、makeファイルを使って.soファイルにコンパイルする必要がありますか、またはより自動化された方法がありますか? (ps私は別々にCythonでコンパイルしようとしましたが、 "#include < path/file>"の表記法が気に入らず、ほとんどのファイルをコンパイルできませんでした)Cythonを使ってC++共有オブジェクトライブラリを使ってPythonを拡張する

その他の情報:私は持っていますctypesを使用してライブラリとインターフェースすることができましたが、それは非常にハックしていてpythonではないと感じました。Cythonでもう少し経験を積みたいと思っています。あなたは、「yourmodule.pyx」という名前のファイルを実行するPXIに他のすべてのファイルの名前を変更し、何ができる

答えて

0

:yourmodule.pyx:

include "other1.pxi" 
include "other2.pxi" 

次に、あなたはcythonizeとコンパイルするだけで一つのファイルを持っています。

+0

これはきちんとした考えです。しかし、私がやったことは、単に.soファイルと直接やりとりしただけのC++ファイルを作成し、それを独自の別の拡張子(別の拡張子と話すことだけです)にラップしました。全体的には非常に成功しています。しかし、ありがとう。 – Josiah

関連する問題