国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 科技週邊 IT業(yè)界 如何調(diào)試Python錯(cuò)誤

如何調(diào)試Python錯(cuò)誤

Feb 15, 2025 am 11:34 AM

深入理解Python錯(cuò)誤:利用內(nèi)省能力和調(diào)試器高效排錯(cuò)

本文探討如何利用Python的內(nèi)省能力和調(diào)試工具(如PDB)高效地調(diào)試程序錯(cuò)誤。文章將從典型錯(cuò)誤信息分析、PDB調(diào)試器使用、生產(chǎn)環(huán)境調(diào)試以及常見(jiàn)問(wèn)題解答等方面展開(kāi),幫助讀者提升Python調(diào)試技能。

How to Debug Python Errors

Python強(qiáng)大的內(nèi)省能力允許我們更深入地理解運(yùn)行時(shí)錯(cuò)誤。通過(guò)檢查調(diào)用棧中的每一幀,包括函數(shù)的調(diào)用參數(shù),我們可以更輕鬆地重現(xiàn)和理解錯(cuò)誤。 Sentry等工具充分利用了這一特性,提供更豐富的錯(cuò)誤上下文信息。

讓我們來(lái)看一個(gè)常見(jiàn)的Python錯(cuò)誤示例:

<code>TypeError: expected string or buffer
  File "sentry/stacktraces.py", line 309, in process_single_stacktrace
    processable_frame, processing_task)
  File "sentry/lang/native/plugin.py", line 196, in process_frame
    in_app = (in_app and not self.sym.is_internal_function(raw_frame.get('function')))
  File "sentry/lang/native/symbolizer.py", line 278, in is_internal_function
    return _internal_function_re.search(function) is not None</code>

這段錯(cuò)誤信息只告訴我們錯(cuò)誤類(lèi)型和位置,卻無(wú)法直接指出錯(cuò)誤原因。 我們可能需要猜測(cè)是傳遞了整數(shù)或NoneType,但實(shí)際情況可能多種多樣。

日誌記錄和PDB調(diào)試器

一種簡(jiǎn)單的調(diào)試方法是添加日誌記錄:

import logging
# ...
logging.debug("function is of type %s", type(function))

這有助於在開(kāi)發(fā)過(guò)程中理解變量類(lèi)型。然而,在生產(chǎn)環(huán)境中,由於DEBUG級(jí)別日誌的冗餘性,這種方法並不理想。

這時(shí),Python調(diào)試器(PDB)就派上用場(chǎng)了。 PDB允許我們通過(guò)斷點(diǎn)逐步執(zhí)行代碼,並檢查變量及其類(lèi)型。 我們可以通過(guò)在代碼中插入import pdb; pdb.set_trace()來(lái)設(shè)置斷點(diǎn):

def is_internal_function(self, function):
    try:
        return _internal_function_re.search(function) is not None
    except Exception:
        import pdb; pdb.set_trace()
        raise

斷點(diǎn)命中後,我們將進(jìn)入PDB交互式環(huán)境,可以使用type(function)查看變量類(lèi)型,使用locals()查看局部變量,以及downup命令在調(diào)用棧中導(dǎo)航。

生產(chǎn)環(huán)境調(diào)試

在生產(chǎn)環(huán)境中,CPython運(yùn)行時(shí)允許我們?cè)L問(wèn)當(dāng)前調(diào)用棧,包括每個(gè)執(zhí)行幀的局部變量。 sys.exc_info()可以獲取異常信息,包括traceback對(duì)象。通過(guò)遍歷traceback對(duì)象,我們可以訪問(wèn)每個(gè)幀的f_locals屬性來(lái)查看局部變量:

exc_type, exc_value, tb = sys.exc_info()
inner_frame = tb.tb_next.tb_frame # 可能需要遍歷tb_next找到合適的frame
pprint(inner_frame.f_locals)

Sentry等工具會(huì)自動(dòng)執(zhí)行類(lèi)似的內(nèi)省操作,提供豐富的錯(cuò)誤上下文信息,無(wú)需手動(dòng)添加代碼。

How to Debug Python Errors

常見(jiàn)問(wèn)題解答

本文最後提供了關(guān)於Python錯(cuò)誤調(diào)試的常見(jiàn)問(wèn)題解答,涵蓋了常見(jiàn)錯(cuò)誤類(lèi)型、PDB使用、IDE調(diào)試、異常處理、遠(yuǎn)程調(diào)試、多線(xiàn)程調(diào)試、第三方庫(kù)調(diào)試、性能問(wèn)題調(diào)試以及調(diào)試技巧提升等方面。

本文部分內(nèi)容改編自Sentry文章。感謝支持SitePoint的合作夥伴們。

How to Debug Python Errors

以上是如何調(diào)試Python錯(cuò)誤的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

用於購(gòu)買(mǎi)SSL證書(shū)的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺(tái) 用於購(gòu)買(mǎi)SSL證書(shū)的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺(tái) Jun 25, 2025 am 08:28 AM

在一個(gè)在線(xiàn)信任不可談判的世界中,SSL證書(shū)對(duì)於每個(gè)網(wǎng)站都至關(guān)重要。 SSL認(rèn)證的市場(chǎng)規(guī)模在2024年價(jià)值56億美元,並且由於電子商務(wù)業(yè)務(wù)的激增而推動(dòng)了強(qiáng)勁的增長(zhǎng)

SaaS的5個(gè)最佳支付門(mén)戶(hù):您的最終指南 SaaS的5個(gè)最佳支付門(mén)戶(hù):您的最終指南 Jun 29, 2025 am 08:28 AM

付款網(wǎng)關(guān)是付款過(guò)程的關(guān)鍵組成部分,使企業(yè)能夠在線(xiàn)接受付款。它充當(dāng)客戶(hù)與商人之間的橋樑,安全地傳輸付款信息並促進(jìn)交易。 為了

新研究聲稱(chēng)AI比我們更好地'理解”情緒。特別是在情感上充滿(mǎn)電的情況下 新研究聲稱(chēng)AI比我們更好地'理解”情緒。特別是在情感上充滿(mǎn)電的情況下 Jul 03, 2025 pm 05:48 PM

在我們認(rèn)為人類(lèi)始終超越機(jī)器的領(lǐng)域的另一個(gè)挫折中,研究人員現(xiàn)在建議AI比我們更好地理解情感。研究人員發(fā)現(xiàn)人工智能證明了一個(gè)

由於新的Microsoft AI型號(hào) 由於新的Microsoft AI型號(hào) Jul 05, 2025 am 12:44 AM

一種新的人工智能(AI)模型已經(jīng)證明了比幾個(gè)使用最廣泛使用的全球預(yù)測(cè)系統(tǒng)更快,更精確地預(yù)測(cè)重大天氣事件的能力。該名為Aurora的模型已接受過(guò)培訓(xùn)。

您的設(shè)備餵養(yǎng)AI助手並收集個(gè)人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 您的設(shè)備餵養(yǎng)AI助手並收集個(gè)人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 Jul 05, 2025 am 01:12 AM

不管喜歡與否,人工智能已成為日常生活的一部分。許多設(shè)備(包括電動(dòng)剃須刀和牙刷)已成為AI驅(qū)動(dòng)的“使用機(jī)器學(xué)習(xí)算法來(lái)跟蹤一個(gè)人的使用方式,Devi的方式

高級(jí)AI型號(hào)的CO&#8322;回答相同問(wèn)題時(shí)的排放量比更常見(jiàn)的LLM 高級(jí)AI型號(hào)的CO&#8322;回答相同問(wèn)題時(shí)的排放量比更常見(jiàn)的LLM Jul 06, 2025 am 12:37 AM

根據(jù)最近的一項(xiàng)研究,我們?cè)噲D使AI模型的功能越精確,其碳排放量就越大 - 某些提示產(chǎn)生的二氧化碳比其他提示高達(dá)50倍。

See all articles