一個.py文件 就是一個模塊python
咱們使用import加載的模塊分爲4個通用類別程序員
一、py文件windows
二、包好一組模塊的包(帶__init__.py文件的文件夾)函數
三、內置模塊url
四、已被編譯成共享庫或者dLL的C或者C++擴展spa
- 最大的好處是大大提升了代碼的可維護性。一個完善的系統代碼起碼有幾萬行代碼,把它們放在一個py文件中,對於編寫或者修改都不是很方便和管理,因此把表示不一樣功能的代碼分別放在不一樣的py文件中。
- 其次,編寫代碼沒必要從零開始。當一個模塊編寫完畢,就能夠被其餘地方引用。咱們在編寫程序的時候,也常常引用其餘模塊,包括Python內置的模塊和來自第三方的模塊。
- 使用模塊還能夠避免函數名和變量名衝突。每一個模塊有獨立的命名空間,所以相同名字的函數和變量徹底能夠分別存在不一樣的模塊中,因此,咱們本身在編寫模塊時,沒必要考慮名字會與其餘模塊衝突
一、內置標準模塊code
二、第三方開源模塊blog
三、自定義模塊ip
模塊的導入應該在程序開始的地方開發
模塊一旦被導入調用,就至關於執行了另一個py文件裏的代碼
調用語法
import xx
from xx import xx
from xx import xx as xx
發現,本身寫的模塊只能在當前路徑下的程序裏才能導入,換一個目錄再導入本身的模塊就報錯說找不到了, 這是爲何?
這與導入路徑有關
import sys print(sys.path)
輸出
['D:\\路飛學城-python中級\\PycharmProjects\\全棧開發中級\\M2\\複習和總結', 'D:\\路飛學城-python中級\\PycharmProjects', 'F:\\Python36\\python36.zip', 'F:\\Python36\\DLLs', 'F:\\Python36\\lib', 'F:\\Python36', 'F:\\Python36\\lib\\site-packages', 'F:\\Program Files\\JetBrains\\PyCharm 2018.1.2\\helpers\\pycharm_matplotlib_backend']
python解釋器會按照列表順序去依次到每一個目錄下去匹配你要導入的模塊名,只要在一個目錄下匹配到了該模塊名,就馬上導入,再也不繼續日後找。
第一個元素,即表明當前目錄,因此你本身定義的模塊在當前目錄會被優先導入。
簡單的說,就是世界上有不少程序員大佬,他們本身寫了一個特定功能的python模塊,而後集中上傳到一個地方,供其餘程序員免費下載和使用
https://pypi.python.org/pypi 是python的開源模塊庫,截止2017年9.30日 ,已經收錄了118170個來自全世界python開發者貢獻的模塊,幾乎涵蓋了你想用python作的任何事情。 事實上每一個python開發者,只要註冊一個帳號就能夠往這個平臺上傳你本身的模塊,這樣全世界的開發者均可以容易的下載並使用你的模塊。
一、使用pip直接安裝
pip install ipython
二、使用國內源安裝
默認pip是使用Python官方的源,可是因爲國外官方源常常被牆,致使不可用,咱們可使用國內的python鏡像源,從而解決Python安裝不上庫的煩惱。
網上有不少可用的源,例如: 豆瓣:http://pypi.douban.com/simple/ 清華:https://pypi.tuna.tsinghua.edu.cn/simple
1、臨時使用,只有安裝ipython時使用指定源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ipython 2、永久修改,一勞永逸 Linux下,修改 ~/.pip/pip.conf (沒有就建立一個), 修改 index-url至tuna,內容以下: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple windows下,直接在user目錄中建立一個pip目錄,如:C:\Users\xx\pip,新建文件pip.ini,內容以下: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
概念:一個文件夾管理多個模塊文件,這個文件夾就叫作包,每一個包文件有一個顯著特徵就是有一個__init__.py文件,若是沒有這個文件,就不是包
只要可以找到路徑,就能導入模塊
因此,只要把相關模塊的父級目錄添加到環境變量(sys.path)中,而後再從這個父級目錄中導入就能夠找到模塊了