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