IronPython子模块导入

时间:2016-07-06 18:56:49

标签: c# python ironpython

我对IronPython模块导入处理存在一般性问题。

给定一个Python包,子模块可以通过相对引用相互引用。假设包被称为Poultry,其中的子模块是Chicken.py和Duck.py.然后鸡可以简单地将鸭子作为“进口鸭子”进口,反之亦然。应用程序加载的Python脚本可以正确导入包,可以使用子模块,一切正常。

包的目录结构如下所示:

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

然而,当我用我的应用程序打开Duck.py时,我无法运行和调试它,因为IronPython在“import Chicken”行引发导入错误,并显示消息“No module name Chicken”。

我知道这不是IronPython的严格问题,而是托管应用程序。最后问题是,如何修改我的托管应用程序以正确处理这些导入语句? 我应该在范围内设置一些路径变量,或者是什么?我怎样才能使Python引擎理解当前加载的文件是特定包的一部分?

欢迎任何想法: - )

2 个答案:

答案 0 :(得分:0)

您必须始终导入Duck作为其包的一部分。在应用程序内部,始终执行以下任一操作:

import Poultry.Duck
from Poultry import Duck

如果直接使用口译员运行,则必须使用-m switch作为

python -m Poultry.Duck

答案 1 :(得分:0)

您仍需要输入from Poultry import Chicken来导入鸡。你不能只做import Chicken。它与您项目中的任何文件都是相同的。