一、前言
最近本都是開(kāi)開(kāi)心心的打開(kāi)電腦寫(xiě)一些祖?zhèn)鰾UG
但一個(gè)報(bào)錯(cuò)阻礙了我寫(xiě)B(tài)UG的進(jìn)度!
這年代還有能阻礙我寫(xiě)B(tài)UG的報(bào)錯(cuò)???
二、解決過(guò)程
一個(gè)新項(xiàng)目要做token認(rèn)證,所以拷了原來(lái)的項(xiàng)目代碼
沒(méi)錯(cuò),高級(jí)CV工程師就是我!!!
加入了一些token配置信息后,啟動(dòng)項(xiàng)目準(zhǔn)備調(diào)試。
啟動(dòng)很成功沒(méi)有任何報(bào)錯(cuò)。
然后啟動(dòng)前端項(xiàng)目開(kāi)始一天的寫(xiě)B(tài)UG時(shí)間!
結(jié)果登錄的時(shí)候就報(bào)錯(cuò)了!!
把之前項(xiàng)目的代碼拷過(guò)來(lái)還會(huì)報(bào)錯(cuò)?
有點(diǎn)奇怪,但都是小場(chǎng)面!
開(kāi)始調(diào)試
結(jié)果一看錯(cuò)誤日志,有點(diǎn)慌了!
是restframework內(nèi)部(第三方包)報(bào)出的錯(cuò)誤!
如果是自己的代碼報(bào)錯(cuò),還可以根據(jù)哪行報(bào)錯(cuò)和錯(cuò)誤信息去排查原因(一般自己代碼報(bào)錯(cuò)都是秒改)
第三包內(nèi)部報(bào)的錯(cuò),如果沒(méi)有明顯的錯(cuò)誤提示排查就要花費(fèi)些時(shí)間!
稍微有點(diǎn)慌!
報(bào)錯(cuò)日志分析出來(lái)暫時(shí)沒(méi)有提供什么有用的信息!
跳轉(zhuǎn)到第三包源碼內(nèi)部,還是沒(méi)有看出為啥報(bào)錯(cuò)!
經(jīng)調(diào)試,再次確認(rèn)并未走進(jìn)我的方法
然后上百度大法,通過(guò)百度大致定位到問(wèn)題
test = (1) for i in test: print(i)
上述代碼執(zhí)行時(shí)會(huì)報(bào)不可迭代的錯(cuò)誤
test=(1),test的類型并不是一個(gè)元組
而是直接把1賦值給了test,這個(gè)時(shí)候的test是等于1的
所以在迭代test的時(shí)候才會(huì)報(bào)不可迭代的錯(cuò)誤!
要定義元組的話,應(yīng)該這樣定義:test = (1,)
這個(gè)時(shí)候test就是一個(gè)可迭代的對(duì)象了
聯(lián)想到最開(kāi)始更改了django 的配置文件,返回去查看
果然!! 少了一個(gè)逗號(hào)!
加上后,問(wèn)題解決!!!
三、總結(jié)
錯(cuò)誤本身很簡(jiǎn)單,只是開(kāi)始源碼報(bào)錯(cuò)讓我有點(diǎn)沒(méi)有解決思路!
還是經(jīng)驗(yàn)太少了!
相信再干100年,向天再借500年!
遇到類似的問(wèn)題,就能夠快速的定位并解決了!!
以上就是Python編程源碼報(bào)錯(cuò)解決方法總結(jié)分享的詳細(xì)內(nèi)容,更多關(guān)于Python編程源碼報(bào)錯(cuò)解決的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!
原文鏈接:https://blog.csdn.net/momoda118/article/details/119612393