一仅胞、前言
之前開發(fā)一直用Jetbrains旗下的Pycharm麻捻,該系列每個IDE產(chǎn)品都很驚艷。在GoLand還沒出來的時候腐芍,Pycharm可以輕松集成golang環(huán)境進行開發(fā)集侯,也可以輕松的集成DataGrip數(shù)據(jù)庫管理工具被啼,該工具可以管理所有的關系型數(shù)據(jù)庫。深感Amazing
可是棠枉,問題也很明顯浓体,每次打開項目都要很久。于是在試用了VS Code之后辈讶,果斷投奔到它的懷抱了命浴。
編輯器,IDE贱除,IDEA總是有同學搞不清這幾個名詞生闲。文本編輯器通常是文件編輯為主要功能的軟件,代表的有sublime月幌,notepad++等碍讯。IDE是集成開發(fā)環(huán)境,一般包括代碼編輯、編譯器飞醉、調(diào)試器和圖形用戶界面等工具冲茸,代表的如Visual Studio屯阀,Eclipse缅帘,IntelliJ IDEA等。而IDEA是IntelliJ IDEA的簡稱难衰。
VS Code特點就是輕量而且功能強大钦无。下面就開始介紹一下vsode debug flask配置。
二盖袭、干貨
工作環(huán)境:macos失暂,Python3
vs code官方有給出配置文檔彼宠,但是更新速度遠不及vs code的更新速度,部分配置項vs code已經(jīng)不兼容弟塞。
于是從網(wǎng)上下手凭峡,基礎配置請先參考https://segmentfault.com/a/1190000008742844。
下面是該文章給出的debug配置:
{
"name": "Python: Flask (0.11.x or later)",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceRoot}/env/bin/flask",
"env": {
"FLASK_APP": "${workspaceRoot}/app.py"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"debugOptions": [
"RedirectOutput"
]
},
按照這個配置完成后并不能直接啟動决记,而是出現(xiàn)了
Traceback (most recent call last):
...
RuntimeError: Click will abort further execution because Python 3 was
configured to use ASCII as encoding for the environment. Either switch
to Python 2 or consult http://click.pocoo.org/python3/ for
mitigation steps
解決方案就是全局設置:
export LC_ALL=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
之后重啟vscode摧冀。確實debug可以了而且flask 本身的debug是否開啟對此并無影響,但是更改代碼之后不會reload 系宫,而且flask config中設置的監(jiān)聽port并不會生效索昂。
于是,我們還是用python去調(diào)試扩借,下面是本人自己嘗試的結果:
{
"name": "Python: Flask (customer)",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceRoot}/app.py",
"env": {
// "FLASK_APP": "${workspaceRoot}/app.py"
},
"args": [
"run",
"--no-debugger",
"--no-reload"
],
"debugOptions": [
"RedirectOutput"
]
},
能debug椒惨,而且編輯了py文件后會自動reload。該配置一定要設置Flsk DEBUG = False算是一點缺陷潮罪,但已經(jīng)能節(jié)省很多手動reload的時間了康谆。