2016-07-06 103 views
1

我有一个IronPython模块导入处理的通用问题。IronPython子模块导入

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

目录结构如下:

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

然而,当我打开Duck.py与我的实例应用程序,我不能运行和调试它作为IronPython的上线抛出一个导入错误“导入鸡“的消息”无模块名鸡“。

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

任何意见,欢迎:-)

回答

0

你必须始终进口Duck作为其计划的一部分。里面的应用程序,始终做到任:

import Poultry.Duck 
from Poultry import Duck 

如果您直接与解释器中运行它,你必须使用-m switch作为

python -m Poultry.Duck 
+0

感谢您的快速回答MisterMiyagi。 事实上我没有问题将Poultry.Duck导入应用程序,它工作得很好。问题是当我打开Duck.py时,IronPython无法处理Duck.py中的“import chicken.py”导入语句。 – user6165992

0

您仍然需要通过键入from Poultry import Chicken进口鸡肉。你不能只做import Chicken。这与你项目中的任何文件都是一样的。