2016-07-06 15 views
1

IronPythonモジュールのインポート処理に一般的な問題があります。IronPythonサブモジュールインポート

与えられたPythonパッケージでは、サブモジュールは相対参照で互いに参照できます。パッケージは家禽と呼ばれ、サブモジュールはChicken.pyとDuck.pyです。チキンはダックを単に「輸入ダック」とその逆に輸入することができます。アプリケーションによってロードされたPythonスクリプトは、パッケージを正しくインポートでき、サブモジュールを使用でき、すべて正常に動作します。パッケージの

のディレクトリ構造は次のようになります。

+ - Poultry 
| - __init__.py 
| - Duck.py 
L - Chicken.py 

をしかし、私は例えば、私のアプリケーションでDuck.pyを開いたときにIronPythonのは、ライン上にインポートエラーがスローされますよう、私はそれを実行してデバッグすることはできません」 「Chickenをインポートせずに」というメッセージが表示されます。

これは厳密にIronPythonではなくホスティングアプリケーションの問題であると私は理解しています。結局のところ、問題は、これらのインポートステートメントを正しく処理するために私のホスティングアプリケーションを変更するにはどうしたらいいですか? 範囲変数にいくつかのパス変数を設定する必要がありますか? Pythonエンジンで、現在ロードされているファイルが特定のパッケージの一部であることを理解させるにはどうすればよいですか?

すべてのアイデアは、あなたは常にそのパッケージの一部としてDuckをインポートする必要が

答えて

0

:-)歓迎されています。アプリケーション内では、常にのいずれかん:あなたは通訳と直接それを実行した場合

import Poultry.Duck 
from Poultry import Duck 

、あなたはまだfrom Poultry import Chickenを入力して、チキンをインポートする必要が

python -m Poultry.Duck 
+0

MisterMiyagiにお返事ありがとうございます。 実際、Poultry.Duckをアプリケーションにインポートするのに問題はありませんが、うまくいきます。問題はDuck.pyを開いたときです。IronPythonはDuck.pyにあるimport Chicken.pyのインポートステートメントを処理できません。 – user6165992

0

として-m switchを使用する必要があります。 import Chickenだけではできません。プロジェクト内のどのファイルからも同じです。