2017-02-26 12 views
1

Python 3でPangoをCairoバックエンドで使用したいと思います。ここでは関係のない理由で 'cairocffi'を選択しました。私はthe example in the documentationを実行しようとしています。それはCFFIを通じてパンゴを呼び出します。例の最初の部分'cairocffi'を含むとき 'FFI'の代わりに 'CompiledFFI'

import cairocffi 
import cffi 
ffi = cffi.FFI() 
ffi.include(cairocffi.ffi) 

は次のようなエラーを示します。

File "/usr/lib/python3.6/site-packages/cffi/api.py", line 494, in include 
    type(ffi_to_include).__name__,)) 
TypeError: ffi.include() expects an argument that is also of type cffi.FFI, not 'CompiledFFI' 

私はCFFIのドキュメントを理解しようとしていますが、私は完全に失われています。まず、CompiledFFIはどこに文書化されていますか?第二に、include,cdef,set_sourceの方法がthe FFI interfaceで表示されるのはなぜですか?そして主な質問は、私は間違って何をしているのですか?

答えて

0

cairocffiがcffiを使用するより現代的な方法を使用するように更新されたようですが、これにより古い例が作成されます。あなたはcairocffiの作者に例を更新するよう頼むべきです。

ffi.include()は、http://cffi.readthedocs.io/en/latest/cdef.html#ffi-ffibuilder-include-combining-multiple-cffi-interfacesと記載されています。混乱は、現代の同等物では、ffiオブジェクトがその例では(異なる構造になる)ffibuilderと呼ばれるという事実に由来します。

+0

混乱は、 'CompiledFFI'はドキュメントにも言及されていないという事実から来ています。 – beroal

+0

右。 'FFI'と 'CompiledFFI'の2つのタイプは一般的に非常に似ていますが、ドキュメント(http://cffi.readthedocs.io/en/latest/ref.html#ffi-interface)にメモを書きました。 –

+0

申し訳ありませんが、私は 'CompiledFFI'をページ上に見つけることができません。 – beroal

関連する問題