⑴ PyCharm寫的python,debug不了
The following workaround should help. I had a same problem in a simple Python script. PyCharm debugger didn't stop on a simple breakpoint and just ran to the end.
Thanks to Gabriel's answer, I checked the path to my script and it had Russian letters. Because I use Russian Windows and it creates admin user named 'Administrator' using Russian letters.
I changed the Russian letters to use only English letters from the project-path (just copied PyCharm projects folder to the root of disk and reloaded my project from new place. Nothing else was changed!). And the debugger immediately started working just fine and stopped on breakpoints!
It looks like this a bug that PyCharm debuger can't work with different national letters in the path. It very common situation outside English-speaking countries.
總結:檢查你的pycharm debugger路徑,是否有特殊字元。
⑵ WINGIDE中沒有debugprobe
沒有設置好的原因
1.首先,看下wingIDE的界面:
wingIDE的用戶界面主要由三部分構成:編輯區、兩個工具區。每個區域都有自己獨立的菜單選項。編輯和切換按鈕可以實現對文檔的快速切換。SHIFT +F2可以使編輯區最大化。
2.檢測你的python集成環境是否正確
在開始編輯代碼前,我們需要首先確定wingIDE已經准確的找到了python安裝程序。為了檢查,我們需要用到Python Shell tool。在橫著的工具欄上右鍵--->Insert tool-->python shell,你將看到如下: 如果它的顯示不對,或者顯示的python版本不對。我們可以使用Project---->project properties來指定environment。指定python的運行環境等信息。
⑶ python3.8版本,使用pycharm2019.3.3版本無法使用Debug調試,麻煩問下怎麼解決
在cmd里輸入
"D:\Program Files\python\python.exe" --version截圖看一下版本(確認是python3.8)
⑷ python怎麼debug就是在我需要的地方輸出參數看是否正確之類的,別說open打開文件寫入,用了框架位置變了
用了框架位置變了,你代碼不會跟著變嗎?定義個方法,
def log(errMsg):
f1 = open('errorLog的絕對路徑','w')
f1.write(errMsg)
f1.close()
要記錄錯誤信息就log(errorLog)
⑸ Loguru:Python 日誌終極解決方案
日誌的作用非常重要,日誌可以記錄用戶的操作、程序的異常,還可以為數據分析提供依據,日誌的存在意義就是為了能夠在程序在運行過程中記錄錯誤,方便維護和調試,能夠快速定位出錯的地方,減少維護成本。每個程序員都應該知道,不是為了記錄日誌而記錄日誌,日誌也不是隨意記的。要實現能夠只通過日誌文件還原整個程序執行的過程,達到能透明地看到程序里執行情況,每個線程、每個過程到底執行到哪的目的。日誌就像飛機的黑匣子一樣,應當能夠復原異常的整個現場乃至細節!
最常見的是把輸出函數 print() 當作日誌記錄的方式,直接列印各種提示信息,常見於個人練習項目里,通常是懶得單獨配置日誌,而且項目太小不需要日誌信息,不需要上線,不需要持續運行,完整的項目不推薦直接列印日誌信息,現實中也幾乎沒有人這么做。
我們可以在不少小項目裡面看到作者自己寫了一個日誌模板,通常利用 print() 或者 sys.stdout 稍微封裝一下即可實現簡單的日誌輸出,這里的 sys.stdout 是 Python 中的標准輸出流, print() 函數是對 sys.stdout 的高級封裝,當我們在 Python 中列印對象調用 print(obj) 時候,事實上是調用了 sys.stdout.write(obj+'\n') , print() 將內容列印到了控制台,然後追加了一個換行符 \n 。
自寫日誌模板適合比較小的項目,可以按照自己的喜好編寫模板,不需要太多復雜配置,方便快捷,但是這種記錄日誌的方式並不是很規范,有可能你自己覺得閱讀體驗不錯,但是別人在接觸你的項目的時候往往需要花費一定的時間去學習日誌的邏輯、格式、輸出方式等,比較大的項目同樣不推薦這種方法。
一個簡單的自寫日誌模板舉例:
日誌模板 log.py:
調用日誌模塊:
日誌輸出:
在一個完整的項目中,大多數人都會引入專門的日誌記錄庫,而 Python 自帶的標准庫 logging 就是專門為日誌記錄而生的,logging 模塊定義的函數和類為應用程序和庫的開發實現了一個靈活的事件日誌系統。由標准庫模塊提供日誌記錄 API 的關鍵好處是所有 Python 模塊都可以使用這個日誌記錄功能。所以,你的應用日誌可以將你自己的日誌信息與來自第三方模塊的信息整合起來。
logging 模塊雖然強大,但是其配置也是比較繁瑣的,在大型項目中通常需要單獨初始化日誌、配置日誌格式等等,K哥在日常使用中通常都會對 logging 做如下的封裝寫法,使日誌可以按天保存,保留15天的日誌,可以配置是否輸出到控制台和文件,如下所示:
輸出日誌:
它在控制台中是這樣的:
當然,如果你不需要很復雜的功能,希望簡潔一點,僅僅需要在控制台輸出一下日誌的話,也可以只進行簡單的配置:
對於 logging 模塊,即便是簡單的使用,也需要自己定義格式,這里介紹一個更加優雅、高效、簡潔的第三方模塊:loguru,官方的介紹是:Loguru is a library which aims to bring enjoyable logging in Python. Loguru 旨在為 Python 帶來愉快的日誌記錄。這里引用官方的一個 GIF 來快速演示其功能:
Loguru 僅支持 Python 3.5 及以上的版本,使用 pip 安裝即可:
Loguru 的主要概念是只有一個:logger
控制台輸出:
可以看到不需要手動設置,Loguru 會提前配置一些基礎信息,自動輸出時間、日誌級別、模塊名、行號等信息,而且根據等級的不同,還自動設置了不同的顏色,方便觀察,真正做到了開箱即用!
如果想自定義日誌級別,自定義日誌格式,保存日誌到文件該怎麼辦?與 logging 模塊不同,不需要 Handler,不需要 Formatter,只需要一個 add() 函數就可以了,例如我們想把日誌儲存到文件:
我們不需要像 logging 模塊一樣再聲明一個 FileHandler 了,就一行 add() 語句搞定,運行之後會發現目錄下 test.log 裡面同樣出現了剛剛控制台輸出的 debug 信息。
與 add() 語句相反, remove() 語句可以刪除我們添加的配置:
此時控制台會輸出兩條 debug 信息:
而 test.log 日誌文件裡面只有一條 debug 信息,原因就在於我們在第二條 debug 語句之前使用了 remove() 語句。
Loguru 對輸出到文件的配置有非常強大的支持,比如支持輸出到多個文件,分級別分別輸出,過大創建新文件,過久自動刪除等等。 下面我們來詳細看一下 add() 語句的詳細參數:
基本語法:
基本參數釋義:
當且僅當 sink 是協程函數時,以下參數適用:
當且僅當 sink 是文件路徑時,以下參數適用:
這么多參數可以見識到 add() 函數的強大之處,僅僅一個函數就能實現 logging 模塊的諸多功能,接下來介紹幾個比較常用的方法。
add() 函數的 rotation 參數,可以實現按照固定時間創建新的日誌文件,比如設置每天 0 點新創建一個 log 文件:
設置超過 500 MB 新創建一個 log 文件:
設置每隔一個周新創建一個 log 文件:
add() 函數的 retention 參數,可以設置日誌的最長保留時間,比如設置日誌文件最長保留 15 天:
設置日誌文件最多保留 10 個:
也可以是一個 datetime.timedelta 對象,比如設置日誌文件最多保留 5 個小時:
add() 函數的 compression 參數,可以配置日誌文件的壓縮格式,這樣可以更加節省存儲空間,比如設置使用 zip 文件格式保存:
其格式支持: gz 、 bz2 、 xz 、 lzma 、 tar 、 tar.gz 、 tar.bz2 、 tar.xz
Loguru 在輸出 log 的時候還提供了非常友好的字元串格式化功能,相當於 str.format() :
輸出:
在 Loguru 里可以直接使用它提供的裝飾器就可以直接進行異常捕獲,而且得到的日誌是無比詳細的:
日誌輸出:
在控制台的輸出是這樣的:
相比 Logging,Loguru 無論是在配置方面、日誌輸出樣式還是異常追蹤,都遠優於 Logging,使用 Loguru 無疑能提升開發人員效率。本文僅介紹了一些常用的方法,想要詳細了解可參考 Loguru 官方文檔 或關注 Loguru GitHub 。
⑹ python 不能debug 然後報錯
就是你要跑的程序引入或者使用了wxPython中的winpdb圖形界面。需要安裝wxpython,但是你的電腦裡面沒有或者安裝了舊版的wxpython。
去http://www.wxpython.org/download.php
下載一個新的安裝再試試。
⑺ python代碼怎麼debug
在需要插入斷點的地方,加入紅色部分代碼:如果_DEBUG值為True,則在該處開始調試(加入_DEBUG的原因是為了方便打開/關閉調試)。
#!/usr/bin/python
_DEBUG=True
def debug_demo(val):
if _DEBUG == True:
import pdb
pdb.set_trace()
⑻ Python pyqt異常錯誤信息沒有提示
最近在寫Python的桌面工具,用到pyqt5,但是發現這個寫好界面報錯之後(崩潰),在控制台里邊沒有一點錯誤信息,這排查起來很不方便啊
在Run/Debug Configurations 中,選擇當前的工程,然後在Execution 中勾選 Emulate terminal in output console
然後控制台就可以暢快的列印報錯信息了
⑼ 怎麼使用PYTHON的debug
可以加參數運行:python -i file.py,然後用 dir() 查看有哪些變數或者對象,直接輸入對象名就可以查看內容,可以解決一部分問題。也可以在你懷疑有錯的地方 print 提示信息。
⑽ python debug怎麼用
1.打開pycharm,新建一個python程序,命名為excel.py。
2.直接貼出代碼,如果是hello world就不存調試的問題了!
相關推薦:《Python基礎教程》
3.介紹調試的菜單操作,在【菜單欄】選擇【RUN】,下拉菜單里選擇【debug excel.py】或者【Debug...】,這兩個功能是一樣的,都是調試功能。
4.介紹快捷鍵調試,調試:CTRL+SHLFT+F9,執行是CTRL+SHLFT+F10,當前調試SHLFT+F9,當前執行SHLFT+F10,還有很多,
5.貼出調試的結果,會具體提示一些警告或者異常,因為本例已經調試過,所以沒有異常。