2016-11-23 14 views
1

Pythonでコード化された暗号化フレームワークCharmがインストールされました。その後、私は以下のようにいくつかのツールをインポートすることにより、自分のコードでそれを使用:インポートエラー:No module

from charm.toolbox.pairinggroup import PairingGroup,ZR,G1,G2,GT,pair 
from charm.zkp_compiler.zkp_generator import * 

しかし、私はzkp_generatorで使用

ImportError: No module named engine.protocol 

engine.protocolエラーを受け取りました。 charm.toolbox.pairringgroupに関連するImport Errorはありません。この原因は何ですか?私はcharm.toolbox.pairringgroupと同じ問題がないので、パススルーに関連する問題はないと思います。

+1

なぜ、最初にインポートするのですか? –

答えて

0

charm.core.engine.protocolというモジュールがないことは明らかです。コマンドプロンプトを呼び出すと、これの最下部まで試して作業する1つの方法があります。

import charm.core.engine 
dir (charm.core.engine) # Might not actually tell you anything useful 
help (charm.core.engine) # If the documentation is good, might tell you what modules you can import 

これは役立つかもしれないが、上記のエラーcharm.core.engine.protocolから存在していないようです...

+0

このコードを実行すると、charm.core.engineがPythonのパッケージに格納されていることがわかります。ファイルのパスとその他の情報も表示されます。 – user1914367

+0

新しいエラーメッセージが表示されたら、私の他の答えがあなたにもっと役立つと思います。上記は、あなたの中に何が入っているかをあなたに知らせることです。もしあなたがプロトコルを見ることができれば、私の他の答えは正しいだろう。 –

1

official package structureによると、そうではありませんというv0.42bにいくつかの変更を導入しました下位互換性があります。私はそれらのうちの一つであることを除いてcharm.core.engine.protocolと仮定します。

アプリケーションがimportなしで動作する場合、なぜそれを使用していますか?

あなたの質問に編集から
+0

私は自分の質問を編集しました。実際には 'zkp_generator'は' engine.protocol'を使用していますので、 'zkp_generator'を使う必要があります。 – user1914367

0

、これがうまくているエンジンと呼ばれるオブジェクトにつながる可能性があり、したがって、あなたのコードがうまく

from charm.core import * 

で動作することを意味し、オブジェクトengine.protocolを期待しているようです属性プロトコル(engine.protocolと呼ぶことができる)。

関連する問題