欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python中的pretty-errors庫使用方法-創(chuàng)新互聯(lián)

當(dāng)我們寫的一個(gè)腳本或程序發(fā)生各種不可預(yù)知的異常時(shí),如果我們沒有進(jìn)行捕獲處理的時(shí)候,通常都會(huì)致使程序崩潰退出,并且會(huì)在終端打印出一堆密密麻麻的traceback堆棧信息來告訴我們,是哪個(gè)地方出了問題。

為江北等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及江北網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、江北網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

Python中的pretty-errors庫使用方法

上面這段 traceback

  • 只有黑白兩個(gè)顏色,無法像代碼高亮那樣,對(duì)肉眼實(shí)現(xiàn)太不友好了
  • 無法直接顯示報(bào)錯(cuò)的代碼,排查問題慢人一步,效率太低

那有沒有一種辦法,可以解決這些問題呢?

當(dāng)然有了,在 Python 中,沒有什么問題是一個(gè)庫解決不了的,如果有,那就等你去開發(fā)這個(gè)庫。

今天要介紹的這個(gè)庫呢,叫做 pretty-errors ,從名字上就可以知道它的用途,是用來美化錯(cuò)誤信息的。

通過這條命令你可以安裝它

$ python3 -m pip install pretty-errors

1. 環(huán)境要求

由于使用了 pretty-errors 后,你的 traceback 信息輸出,會(huì)有代碼高亮那樣的效果,因此當(dāng)你在使用測(cè)試使用 pretty-error 時(shí),請(qǐng)確保你使用的終端可以輸出帶有顏色的字體。

在 windows 上你可以使用 Powershell,cmder 等

在 Mac 上你可以使用自帶的終端,或者安裝一個(gè)更好用的 iTerm2

2. 效果對(duì)比


隨便寫一個(gè)沒有使用 pretty-errors ,并且報(bào)錯(cuò)了的程序,是這樣子的。

Python中的pretty-errors庫使用方法

而使用了 pretty_errors 后,報(bào)錯(cuò)信息被美化成這樣了。

Python中的pretty-errors庫使用方法

是不是感覺清楚了不少,那種密密麻麻帶來的焦慮感是不是都消失了呢?

當(dāng)然這段代碼少,你可能還沒感受到,那就來看下 該項(xiàng)目在 Github上的一張效果對(duì)比圖吧

Python中的pretty-errors庫使用方法

3. 配置全局可用

可以看到使用了 pretty_errors 后,無非就是把過濾掉了一些干擾我們視線的無用信息,然后把有用的關(guān)鍵信息給我們高亮顯示。

既然既然這樣,那 pretty_errors 應(yīng)該也能支持我們?nèi)绾巫远x我們選用什么樣的顏色,怎么排版吧?

答案是顯而易見的。

pretty_errors 和其他庫不太一樣,在一定程度上(如果你使用全局配置的話),它并不是開箱即用的,你在使用它之前可能需要做一下配置。

使用這一條命令,會(huì)讓你進(jìn)行配置,可以讓你在該環(huán)境中運(yùn)行其他腳本時(shí)的 traceback 輸出都自動(dòng)美化。

$ python3 -m pretty_errors

Python中的pretty-errors庫使用方法

配置完成后,你再運(yùn)行任何腳本,traceback 都會(huì)自動(dòng)美化了。

不僅是在我的 iTerm 終端下

Python中的pretty-errors庫使用方法

在 PyCharm 中也會(huì)

Python中的pretty-errors庫使用方法

唯一的缺點(diǎn)就是,原先在 PyCharm 中的 traceback 可以直接點(diǎn)擊 文件路徑 直接跳轉(zhuǎn)到對(duì)應(yīng)錯(cuò)誤文件代碼行,而你如果是在 VSCode 可以使用 下面自定義配置的方案解決這個(gè)問題(下面會(huì)講到,參數(shù)是:display_link)。

Python中的pretty-errors庫使用方法

因此,有些情況下,你并不想設(shè)置 pretty_errors 全局可用。

那怎么取消之前的配置呢?

只需要再次輸出 python -m pretty_errors,輸出入 C 即可清除。

Python中的pretty-errors庫使用方法

4. 單文件中使用

取消全局可用后,你可以根據(jù)自己需要,在你需要使用 pretty-errors 的腳本文件中導(dǎo)入pretty_errors,即可使用

import pretty_errors

就像這樣

import pretty_errors

def foo():
   1/0

if __name__ == "__main__":
   foo()

值得一提的是,使用這種方式,若是你的腳本中,出現(xiàn)語法錯(cuò)誤,則輸出的異常信息還是按照之前的方式展示,并不會(huì)被美化。

因此,為了讓美化更徹底,官方推薦你使用 python -m pretty_errors

5. 自定義設(shè)置

上面的例子里,我們使用的都是 pretty_errors 的默認(rèn)美化格式,展示的信息并沒有那么全。

比如

  • 它并沒有展示報(bào)錯(cuò)文件的絕對(duì)路徑,這將使我們很難定位到是哪個(gè)文件里的代碼出現(xiàn)錯(cuò)誤。
  • 如果能把具體報(bào)錯(cuò)的代碼,給我們展示在終端屏幕上,就不需要我們?cè)俚皆创a文件中排查原因了。

如果使用了 pretty_errors 導(dǎo)致異常信息有丟失,那還不如不使用 pretty_errors 呢。

不過,可以告訴你的是,pretty_errors 并沒有你想象的那么簡單。

它足夠開放,支持自定義配置,可以由你選擇你需要展示哪些信息,怎么展示?

這里舉一個(gè)例子

import pretty_errors

# 【重點(diǎn)】進(jìn)行配置
pretty_errors.configure(
   separator_character = '*',
   filename_display   = pretty_errors.FILENAME_EXTENDED,
   line_number_first  = True,
   display_link     = True,
   lines_before     = 5,
   lines_after     = 2,
   line_color      = pretty_errors.RED + '> ' + pretty_errors.default_config.line_color,
   code_color      = '  ' + pretty_errors.default_config.line_color,
)

# 原來的代碼
def foo():
   1/0

if __name__ == "__main__":
   foo()

在你像上面這樣使用 pretty_errrs.configure 進(jìn)行配置時(shí),拋出的的異常信息就變成這樣了。

Python中的pretty-errors庫使用方法

當(dāng)然了,pretty_errors.configure()  還可以接收很多的參數(shù),你可以根據(jù)你自己的需要進(jìn)行配置。

5.1 設(shè)置顏色

  • header_color:設(shè)置標(biāo)題行的顏色。
  • timestamp_color:設(shè)置時(shí)間戳顏色
  • default_color:設(shè)置默認(rèn)的顏色
  • filename_color:設(shè)置文件名顏色
  • line_number_color:設(shè)置行號(hào)顏色。
  • function_color:設(shè)置函數(shù)顏色。
  • link_color:設(shè)置鏈接的顏色。

在設(shè)置顏色的時(shí)候,pretty_errors 提供了一些常用的 顏色常量供你直接調(diào)取。

  • BLACK:黑色
  • GREY:灰色
  • RED:紅色
  • GREEN:綠色
  • YELLOW:黃色
  • BLUE:藍(lán)色
  • MAGENTA:品紅色
  • CYAN:藍(lán)綠色
  • WHITE:白色

而每一種顏色,都相應(yīng)的匹配的 BRIGHT_ 變體 和 _BACKGROUND 變體,

其中,_BACKGROUND 用于設(shè)置背景色,舉個(gè)例子如下。

Python中的pretty-errors庫使用方法

5.2 設(shè)置顯示內(nèi)容

  • line_number_first
    啟用后,將首先顯示行號(hào),而不是文件名。
  • lines_before : 顯示發(fā)生異常處的前幾行代碼
  • lines_after: 顯示發(fā)生異常處的后幾行代碼
  • display_link:啟用后,將在錯(cuò)誤位置下方寫入鏈接,VScode將允許您單擊該鏈接。
  • separator_character:用于創(chuàng)建標(biāo)題行的字符。默認(rèn)情況下使用連字符。如果設(shè)置為 '' 或者 None ,標(biāo)題將被禁用。
  • display_timestamp:啟用時(shí),時(shí)間戳將寫入回溯頭中。
  • display_locals
    啟用后,將顯示在頂部堆??蚣艽a中的局部變量及其值。

  • display_trace_locals
    啟用后,其他堆??蚣艽a中出現(xiàn)的局部變量將與它們的值一起顯示。

5.3 設(shè)置怎么顯示

  • line_length:設(shè)置每行的長度,默認(rèn)為0,表示每行的輸出將與控制臺(tái)尺寸相匹配,如果你設(shè)置的長度將好與控制臺(tái)寬度匹配,則可能需要禁用full_line_newline,以防止出現(xiàn)明顯的雙換行符。

  • full_line_newline:當(dāng)輸出的字符滿行時(shí),是否要插入換行符。

  • timestamp_function
    調(diào)用該函數(shù)以生成時(shí)間戳。默認(rèn)值為time.perf_counter。

  • top_first
    啟用后,堆棧跟蹤將反轉(zhuǎn),首先顯示堆棧頂部。

  • display_arrow
    啟用后,將針對(duì)語法錯(cuò)誤顯示一個(gè)箭頭,指向有問題的令牌。

  • truncate_code
    啟用后,每行代碼將被截?cái)嘁赃m合行長。

  • stack_depth
    要顯示的堆棧跟蹤的大條目數(shù)。什么時(shí)候0將顯示整個(gè)堆棧,這是默認(rèn)值。

  • exception_above
    啟用后,異常將顯示在堆棧跟蹤上方。

  • exception_below
    啟用后,異常顯示在堆棧跟蹤下方。

  • reset_stdout
    啟用后,重置轉(zhuǎn)義序列將寫入stdout和stderr;如果您的控制臺(tái)留下錯(cuò)誤的顏色,請(qǐng)啟用此選項(xiàng)。

  • filename_display

    設(shè)置文件名的展示方式,有三個(gè)選項(xiàng): pretty_errors.FILENAME_COMPACT 、pretty_errors.FILENAME_EXTENDED,或者pretty_errors.FILENAME_FULL

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標(biāo)題:Python中的pretty-errors庫使用方法-創(chuàng)新互聯(lián)
URL地址:http://aaarwkj.com/article28/ppccp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站服務(wù)器托管、定制網(wǎng)站品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
中文字幕日韩欧美一区| 一区二区中文字幕日本韩国| 熟年人妻一区二区三区| 亚洲免费成人一区二区| 黄色成人av免费看| 超碰国产熟女一区二区三区| 国产三级三级三级av精品| 欧美一区二区日韩国产| 综合国产精品久久久久久| 丰满人妻的诱惑中文字幕| 四虎永久精品在线视频| 琪琪精品免费一区二区三区 | 97精品在线免费视频| 乱码日本欧美一区二区| 人妻巨乳一区二区三区| 欧美亚洲成人免费电影| 欧美成人精品免费在线| 成人av高清在线观看| 99热视频这里只有精品| 中文字幕一区侵犯人妻| 久久亚洲精品中文字幕| 色哟国产传媒视频在线观看| 韩国三级伦理中文字幕| 国产av自拍在线免费观看| 国产三级视频在线观看视频| 精品国产成人一区二区| 自由成熟性生活免费视频| 亚洲一区二区日韩人妻| 国产午夜激情在线播放| 男人天堂av网在线观看| 亚洲男人的av天堂生活| 欧美日韩在线一区二区| 国产亚洲精品免费视频| 国产精品一区二区一牛影视| 国产老熟女不带套91| 亚洲国产精品成人久久蜜臀| 蜜臀久久精品国产综合| 人妻少妇精品视频二区| 快播av手机在线播放| 色婷婷国产精品久久包臀| 欧美国产精品久久综合|