一、模塊、包
1、模塊
模塊實質上就是一個python文件。它是用來組織代碼的,意思就是把python代碼寫到里面,文件名就是模塊的名稱,test.py test就是模塊的名稱
2、包
包,package本質就是一個文件夾,和文件夾不一樣的是它有一個__init__.py文件。包是從邏輯上來組織模塊的,也就是說它是用來存放模塊的,如果想到如其他目錄下的模塊,那么這個目錄必須是一個包才可以導入。
二、模塊分類
1、標准模塊、標准包
python自帶的這些模塊,直接import就能用的
import string,random,datetime,os,sys,json,hashlib
2、第三方模塊
別人寫好的一些模塊,你要安裝之后才可以用
想實現某個功能,可以先去百度搜一下有沒有第三方模塊
3、自己寫的python文件
三、安裝第三方模塊
1、傻瓜式的
(1) 直接在命令行窗口輸入命令 pip install pymysql 、pip install redis
pip在python3.4以上的版本是自帶的。但這種方式需要保證pycharm中的Project Interpreter路徑是Python安裝路徑,否則即使窗口顯示下載安裝成功,依然不能成功import
因為命令行下載下來的第三方安裝包存儲在Python安裝路徑\python3\Lib\site-packages
而pycharm import時,是從pycharm->File->Settings->Project Interpreter->設置的路徑下\python\venv\Lib\site-packages去取第三方安裝包
(2) 也可以直接在pycharm中安裝第三方模塊,這樣安裝的模塊會放在Project Interpreter->設置的路徑下\python\venv\Lib\site-packages下,就可以直接使用。
(3) 若提示pip命令不存在
輸入 where pip
若提示pip不是內部命令
pycharm External Libraries
備注:python 3.5以后 scripts自動加入到計算機環境變量
沒有pip命令的怎么搞
a、pycharm里面點python console
b、找到python安裝目錄
c、然后把安裝目錄下的scripts目錄,加入到環境變量里面即可
ps:環境變量在PATH里面加
(4) Unknown or unsupported command 'install' 出來這個問提怎么解決
a、打開 C:\strawberry\perl\bin\
b、把這個目錄下的pip 都改成其他的名字,這個對其他的沒有影響
2、手動安裝
限制外網無法直接下載時,可以找別人下載好包然后手動安裝
(1) 百度搜索:python redis
(2) 找到網址:https://pypi.python.org/pypi/redis#downloads,下載安裝包
(3) 安裝whl結尾的安裝包
shift+右鍵,在此處打開命令行窗口(或者在地址欄中直接輸入cmd)
pip install redis-2.10.6-py2.py3-none-any.whl
(4) 安裝tar.gz結尾的安裝包
a、解壓這個壓縮包
b、進入到這個解壓之后的文件夾里面(shift+右鍵,在此處打開命令行窗口(或者在地址欄中直接輸入cmd))
c、在命令行里面運行 python setup.py install
3、卸載模塊
pip uninstall xxx #卸載
四、導入模塊的順序、實質
1、python導入模塊時候的順序:
(1) 從當前目錄下找需要導入的python文件
(2) 從python的環境變量中找 sys.path
2、導入模塊的實質:
就是把python文件從頭到尾執行一次
舉個例子:
(1) 自定義一個python模塊 dr.py,放在當前目錄下
name = 'hello' def my(): print('python') my()
(2) 新建一個tmp.py
import dr #導入文件的時候已經把python文件執行了一次,打印出python print(dr.name) #打印出hello dr.my() #打印出python
上面的代碼還可以用下面這種方式寫
from dr import name,my #這種調用自定義函數時不用再寫“文件名.函數”,直接寫函數或者變量名 print(name) my()
from dr import * #導入所有的 #from aa import * my() #盡量不要用,因為看源碼的時候會很難看出來函數屬於哪個文件
(3) 當把dr.py放在sys.path其中一個環境變量下后,dr.就可以點出函數了
(4) 當前目錄和path環境變量下都有dr.py,會優先選擇當前目錄下的dr.py