使用Python解釋器
1.1 Python安裝
從源碼編譯安裝python
./configure
make
make test
sudo make install
默認(rèn)python解釋器安裝在/usr/local/bin/python3.8,可以將/usr/local/bin放到path搜索路徑中。
在windows系統(tǒng)上,python一般安裝在C:\Python38,在windows 命令行中,執(zhí)行命令set path=%path%;C:\python38 將該路徑添加到path搜索路徑。
1.2 使用解釋器
在類linux系統(tǒng)中,在console控制臺輸入python3.8 即可運行,退出CTL+D(文件結(jié)束符)或者
quit()
在windows系統(tǒng)上,打開命令行輸入python即可運行,退出CTL+Z(文件結(jié)束符)或者quit()
解釋器的行編輯功能也包括交互式編輯,在支持 readline 的系統(tǒng)中,可以回看歷史命令,也有 Tab 代碼補全功能。檢查是否支持行編輯功能,在出現(xiàn)提示符后,CTL+P。如果
有‘嗶’的一聲或者出現(xiàn)一行字符串(如下圖),那么就是支持行編輯功能;
如果什么都沒出現(xiàn)或者顯示^P 那么不支持行編輯。只能用Backspace退格鍵從當(dāng)前行刪除字符。
python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]
python -h 可以查看幫助信息
在標(biāo)準(zhǔn)輸入tty設(shè)備調(diào)用解釋器,他能交互式地讀取和執(zhí)行命令,調(diào)用時如果提供文件名作參數(shù)或者有文件重定向到標(biāo)準(zhǔn)輸入,他會讀取和執(zhí)行文件中的腳本。
python xxx.py --直接運行的方式啟動(此時腳本__name__為"
main
")
如果用python -c command [arg] … 調(diào)用,則執(zhí)行命令command。由于 Python 代碼中經(jīng)常會包含對終端來說比較特殊的字符,通常情況下都建議用英文單引號把 command 括起來。
這里的command是python 自己的command,不是linux的。
Python -m module [arg] …會執(zhí)行module的源文件,這把python模塊當(dāng)作腳本使用。
python -m xxx.py --以模塊的方式啟動(此時腳本的__name__屬性值依然不再是"
main
"而是"xxx")
在運行腳本的時候,有時可能也會需要在運行后進入交互模式。這種時候在文件參數(shù)前,加上選項 -i 就可以了。
1.2.1 傳入?yún)?shù)
解釋器會讀取命令行參數(shù),轉(zhuǎn)化為字符串列表存入 sys 模塊中的 argv 變量中。執(zhí)行命令 import sys 你可以導(dǎo)入這個模塊并訪問這個列表。這個列表最少也會有一個元素;如果沒有給定輸入?yún)?shù),sys.argv[0]就是個空字符串。如果腳本名是標(biāo)準(zhǔn)輸入,sys.argv[0] 就是 ‘-’。使用 -c command 時,sys.argv[0] 就會是 ‘-c’。如果使用選項 -m module,sys.argv[0] 就是包含目錄的模塊全名。在 -c command 或 -m module 之后的選項不會被解釋器處理,而會直接留在 sys.argv 中給命令或模塊來處理。
cat module.py
#! /usr/bin/env python
- - coding: UTF-8 - -
import sys
print(sys.path)
print(sys.modules)
print(sys.argv[0], sys.argv[1])
通過以上執(zhí)行方式發(fā)現(xiàn):
第一種方法——直接運行腳本,當(dāng)前腳本所在的路徑會加入到 sys.path 列表中,但是 sys.modules 字典中的 __main__的路徑不是絕對路徑,只是腳本名稱。
第二種方法——當(dāng)做模塊方式運行,當(dāng)前腳本所在的路徑不會加入到 sys.path 列表中,但是 sys.modules 字典中的
main
的路徑是絕對路徑,同時,還引入了 runpy 和 pkgutil 兩個模塊。
runpy 的用途:定位并執(zhí)行該模塊。主要用途在于實現(xiàn)命令行 -m 執(zhí)行 python 模塊的效果。
pkgutil 的用途:獲取包里面的所有模塊列表。pkgutil.get_data() 可讀取包內(nèi)任何文件內(nèi)容。
Python模塊的導(dǎo)入機制:
要理解模塊的導(dǎo)入機制,得理解幾個關(guān)鍵的名詞。sys.path -> sys.modules -> < module >.
dict
。
sys.path:是一個列表。保存著模塊的搜索路徑。如果路徑?jīng)]有存在與該列表中,可使用 sys.path.append() 導(dǎo)入。
sys.modules: 是一個字典。所有加載到內(nèi)存中的模塊都存放在該字典中。當(dāng) import 一個模塊的時候,首先會在這個字典中查找是否已經(jīng)加載了目標(biāo)模塊。如果已加載,則將模塊的名字加入到正在調(diào)用 import 的模塊的 Local 命名空間(也就是< module >.
dict
)中。如果沒有,則從 sys.path 查找,找到后載入內(nèi)存,并加入到 sys.modules 字典,名稱也將導(dǎo)入到當(dāng)前模塊的 Local 命名空間。
1.2.2 交互模式
在終端(tty)輸入并執(zhí)行指令時,解釋器是運行在 交互模式(interactive mode)。在這種模式中,它會顯示 主提示符(primary prompt),提示輸入下一條指令,通常用三個大于號(>>>)表示;連續(xù)輸入行的時候,它會顯示 次要提示符,默認(rèn)是三個點(…)。
1.2.3 解釋器的運行環(huán)境(編碼格式)
源碼文件的字符編碼。
默認(rèn)情況下,Python 源碼文件以 UTF-8 編碼方式處理。在這種編碼方式中,世界上大多數(shù)語言的字符都可以同時用于字符串字面值、變量或函數(shù)名稱以及注釋中——盡管標(biāo)準(zhǔn)庫中只用常規(guī)的 ASCII 字符作為變量或函數(shù)名,而且任何可移植的代碼都應(yīng)該遵守此約定。要正確顯示這些字符,你的編輯器必須能識別 UTF-8 編碼,而且必須使用能支持打開的文件中所有字符的字體。
如果不使用默認(rèn)編碼,要聲明文件所使用的編碼,文件的 第一 行要寫成特殊的注釋。
- - coding: encoding - -
Encoding可以是python支持的任意一種codecs。
關(guān)于 第一行 規(guī)則的一種例外情況是,源碼以 UNIX “shebang” 行 開頭。這種情況下,編碼聲明就要寫在文件的第二行。例如:
#!/usr/bin/env python3
- - coding: cp1252 - -
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
