2011-02-13 154 views
0

我是Python的新手,試圖瞭解如何正確設置模塊。未找到Python模塊?

我有以下幾點:

dir1 
    pack1.py 
     dir2 
      pack2.py 

...當然在我的目錄我有__init__.py

現在,我試圖讓pack2.py從pack1.py

繼承

得到如下:

class Pack2(Pack1): 
    def __repr__(self): 
     ....my code goes here.... 

而且我想導入此INT o我的程序,所以我可以使用Pack2

我的問題:我有一個可怕的時間試圖找出在我的程序和pack2.py文件中使用的導入語句。

我想(我的程序):

from dir1.dir2 import pack2 

和PACK2

from dir1 import pack1 

,但沒有骰子。這看起來是否正確?

回答

2

在Python中import module不會使在當前命名空間中直接使用模塊定義的所有名字......你需要使用module.name來訪問它們。 如果你想獲得所有在模塊中定義的名字直接可用,你必須做類似from module import *

爲了能夠肯定地告訴哪裏出了問題應該出你的__init__.py文件的內容,但假設它們是空文件創建的只是使用子目錄模塊那麼我認爲你應該使用:

  • 在主程序from dir1.dir2.pack2 import Pack2
  • 在pack1.py而應該使用from dir2.pack2 import Pack2
2

你設置了你的Python路徑嗎?如果你還沒有,那麼Python解釋器不可能找到你所有的模塊。

每個腳本的目錄位於Python路徑中,因此模塊可以將其他模塊導入到相同或較低的目錄中。但是需要從父目錄導入東西的模塊需要做一些額外的工作。

的解決方案是修改的sys.path:

import sys 
# Add parent directory to path 
sys.path.append('..') 
+1

如果我的記憶沒有背叛我,`sys.path`應該包括`」 .'`。 – delnan 2011-02-13 20:26:56