太好了,一分鐘帶你分清Python模組、包和庫
- 2019 年 11 月 3 日
- 筆記
模組
一個.py文件就稱之為一個模組(Module),一個模組里可能會包含很多函數,函數命名時,盡量不要與內置函數名字衝突。
常見的內置函數見文章:
Pandas的concat.py模組如下:

裡面包括3個函數和1個類
注意:
系統自帶了sys模組,自己的模組就不可命名為sys.py,否則將無法導入系統自帶的sys模組。檢查方法是在Python交互環境執行import abc,若成功則說明系統存在abc 模組。
包
包(Package)下有多個模組,如下為pandas 的reshape 包,裡面包括多個.py 文件。

裡面有一個.py文件比較特殊,也是每個包下必須包括的,它是__init__.py
__init__.py可以是空文件,在此處reshape包下的這個文件就是空的。當然,也可以有Python程式碼,因為__init__.py本身就是一個模組。模組__init__.py的模組名在此處就是reshape。
可以有多級層次的包結構。比如pandas的core包,含有如下的目錄結構:

庫
庫是指具有相關功能模組的集合。這也是Python的一大特色之一,即具有強大的標準庫、第三方庫以及自定義模組。
標準庫:python里那些自帶的模組
第三方庫:就是由其他的第三方機構,發布的具有特定功能的模組。比如2018年最受歡迎的幾個庫:TensorFlow、pandas、scikit-learn、PyTorch、Matplotlib、Keras、NumPy、SciPy、Apache MXNet、Theano、Bokeh、XGBoost、Gensim、Scrapy、Caffe
自定義模組:用戶自己可以自行編寫模組,然後使用。
python中導入模組、包都是通過import.
