python模塊:包含並且有組織的代碼片段為模塊。
表現形式為:寫的代碼保存為文件。這個文件就是壹個模塊。sample.py 其中文件名smaple為模塊名字。
關系圖:
2.python包是:包是壹個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執行環境。
通俗壹點:包是壹個包含__init__.py 文件的目錄,該目錄下壹定得有這個__init__.py文件和其它模塊或子包。
常見問題:
引入某壹特定路徑下的模塊
使用sys.path.append(yourmodulepath)
將壹個路徑加入到python系統路徑下,避免每次通過代碼指定路徑
利用系統環境變量?export PYTHONPATH=$PYTHONPATH:yourmodulepath,
直接將這個路徑鏈接到類似/Library/Python/2.7/site-packages目錄下
好的建議:
經常使用if __name__ == '__main__',保證寫包既可以import又可以獨立運行,用於test。
多次import不會多次執行模塊,只會執行壹次。可以使用reload來強制運行模塊,但不提倡。
常見的包結構如下:
package_a
├── __init__.py
├── module_a1.py
└── module_a2.py
package_b
├── __init__.py
├── module_b1.py
└── module_b2.py
main.py
如果main.py想要引用packagea中的模塊modulea1,可以使用:
from package_a import module_a1
import package_a.module_a1
如果packagea中的modulea1需要引用packageb,那麽默認情況下,python是找不到packageb。我們可以使用sys.path.append('../'),可以在packagea中的__init__.py添加這句話,然後該包下得所有module都添加*?import __init_即可。
關系圖:
3.庫(library)庫的概念是具有相關功能模塊的集合。這也是Python的壹大特色之壹,即具有強大的標準庫、第三方庫以及自定義模塊。