2012-07-31 61 views
3

這裏是我的結構,如何製作python包?

main.py 
folder1\ 
    button.py 
    folder2\ 
     picturebutton.py 
folder3\ 
    listbox.py 
    folder4\ 
     customlistbox.py 
     folder5\ 
      hyperlistbox.py 

現在,

我有一個名爲「widget.py」模塊,我想使它接觸到所有模塊使這裏每個模塊會能夠說import widget或類似的東西。谷歌搜索後,似乎我必須做一個包來做到這一點。

我無法在線使用示例,因爲我不知道它們是如何工作的,我希望你們其中一個能夠幫助我處理案件。

編輯: 所有文件夾(除了根目錄)都有一個__init__.py文件。

回答

2

能夠導入一些其他模塊並不需要將其作爲一個包,它需要將widget模塊放在您的PYTHONPATH上。你通常會安裝它(編寫一個setup.py文件,參見標準庫的distutils模塊)。

如果您確實需要一個包,每個需要成爲包的文件夾都需要有一個__init__.py文件(空白很好)。

+0

如果我把'widget.py'的主要根源,我不會能夠從子目錄訪問它。 – user1513192 2012-07-31 22:57:11

+0

如果你的目錄(你的「root」目錄)在你的'PYTHONPATH'上,你會這樣。只有當它實際上與其他東西相關時,纔將「widget」放在那個根目錄下。 – Julian 2012-07-31 22:57:39

+0

如果我凍結了應用程序,此方法仍然可行嗎?另外,我忘了提及,我的所有文件夾(除了根目錄)都有__init__.py文件。 – user1513192 2012-07-31 22:59:38

0

正確的方法是爲您的軟件包創建setup.py文件,但因爲它可能需要時間。以下是捷徑。

如果你想經常使用你的模塊,就像在腳本中一樣。簡單的方法是在bashrc/zshrc文件中導出「PYTHONPATH」,併爲包含代碼的目錄提供路徑。

例如:

export PYTHONPATH=$PYTHONPATH:$HOME/path/to/package 

做檢查終端上使用

echo "$PYTHONPATH" 

編碼快樂