2016-07-06 102 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。這與你項目中的任何文件都是一樣的。