我对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引擎理解当前加载的文件是特定包的一部分?
欢迎任何想法: - )
答案 0 :(得分:0)
您必须始终导入Duck
作为其包的一部分。在应用程序内部,始终执行以下任一操作:
import Poultry.Duck
from Poultry import Duck
如果直接使用口译员运行,则必须使用-m
switch作为
python -m Poultry.Duck
答案 1 :(得分:0)
您仍需要输入from Poultry import Chicken
来导入鸡。你不能只做import Chicken
。它与您项目中的任何文件都是相同的。