當(dāng)錯(cuò)誤發(fā)生時(shí),解釋器打印一個(gè)錯(cuò)誤消息和堆棧跟蹤。在交互模式下,它會(huì)返回到主提示符;如果輸入來自一個(gè)文件,它會(huì)在打印堆棧信息后以非零狀態(tài)退出(一個(gè) try 語句中的 except 子句沒有錯(cuò)誤在這個(gè)背景下。處理例外)。一些錯(cuò)誤是致命的,因?yàn)橐粋€(gè)零狀態(tài)退出;這適用于內(nèi)部的矛盾和一些內(nèi)存耗盡的情況下。所有的錯(cuò)誤信息都寫入標(biāo)準(zhǔn)錯(cuò)誤流;正常情況下執(zhí)行命令的輸出寫入標(biāo)準(zhǔn)輸出。
輸入中斷符(通常是 Control-C or DEL)到原發(fā)性或繼發(fā)性提示取消輸入并返回到主提示符。腳注[1] 當(dāng)命令正在執(zhí)行時(shí)輸入一個(gè)中斷,提高了 keyboardinterrupt 異常,這可能是由一個(gè) try 語句處理。
在 BSD?Unix 系統(tǒng)中 Python 腳本通過將行可以直接執(zhí)行,像 shell 腳本,
#!/usr/bin/env python3.4
(假設(shè)解釋是在用戶的路徑上)在腳本的開始,給文件的執(zhí)行模式。#!必須是文件的前兩個(gè)字符。在一些平臺(tái)上,該行必須以 UNIX 風(fēng)格的行結(jié)束('\n'),(“\r\n”)行結(jié)束。注意哈希,或磅字符,’#’在 python 中是被用于開始一個(gè)評(píng)論。
該腳本可以給出一個(gè)可執(zhí)行的模式,或許可,使用 chmod 命令
$ chmod +x myscript.py
在 Windows 系統(tǒng)中,沒有可執(zhí)行模式。Python 安裝程序自動(dòng)將 .py 與 python.exe 文件聯(lián)系起來,雙擊一個(gè) Python 文件將作為一個(gè)腳本運(yùn)行它。擴(kuò)展也可以是 .pyw,在這種情況下,通常出現(xiàn)在控制臺(tái)的窗口被抑制。
當(dāng)你使用 Python 解釋器,在每次解釋器啟動(dòng)的時(shí)候,它常常是有一定的標(biāo)準(zhǔn)執(zhí)行的命令。你可以通過設(shè)置一個(gè)名為 pythonstartup 到包含有啟動(dòng)命令的文件名的環(huán)境變量中。這是類似于 UNIX 外殼的 .profile 中的功能。
這個(gè)文件在交互會(huì)話期是只讀的,而不是在 Python 讀取腳本命令時(shí),更不是當(dāng) /dev/tty 為外部命令源時(shí)(否則就像一個(gè)交互式會(huì)話)。這是運(yùn)行在同一個(gè)命名空間的交互式命令被執(zhí)行,所以由它定義或進(jìn)口可不使用交互式會(huì)話。你也可以在這個(gè)文件夾中改變 sys.ps1 和 sys.ps2 指令。
如果你想從當(dāng)前目錄讀取附加的啟動(dòng)文件,你可以在全球啟動(dòng)文件中使用代碼如 os.path.isfile(“.pythonrc.py”):exec (open(.pythonrc.py).read())。如果你想在一個(gè)腳本中使用的啟動(dòng)文件,你必須明確地在腳本中這樣做:
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
with open(filename) as fobj:
startup_file = fobj.read()
exec(startup_file)
Python 提供了兩個(gè)自定義掛鉤: sitecustomize 和 usercustomize 。為了看到它是如何工作的,第一你需要找到你你的用戶網(wǎng)站的軟件包目錄的位置。啟動(dòng) Python 并且運(yùn)行這段代碼。
>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.4/site-packages'
現(xiàn)在你可以創(chuàng)建一個(gè) usercustomize.py 的文件名在目錄中,放任何你想要的東西在里面。它會(huì)影響每一個(gè) Python 的調(diào)用,除非它是以與 -s 選項(xiàng)禁用自動(dòng)進(jìn)口開始。
sitecustomize 以同樣的方式工作,但通常是通過全球網(wǎng)站包目錄的計(jì)算機(jī)的管理員創(chuàng)建,并在之前usercustomize 導(dǎo)入。