摘要:最近由于工作關(guān)系,開(kāi)始寫(xiě)程序,同事有用的,有用的。第一種適合及以上版本,因?yàn)樵诎姹酒穑霈F(xiàn)了文件,配置可以寫(xiě)成用文件啟動(dòng)程序,實(shí)測(cè)可以觸發(fā)斷點(diǎn)。
最近由于工作關(guān)系,開(kāi)始寫(xiě)flask web程序,同事有用Vim的,有用PyCharm的。在調(diào)研了一通python的編輯器,IDE之后,發(fā)現(xiàn)Visual Studio Code相對(duì)比較適合我。
VSC有相對(duì)較全的功能,比較好看舒服的主題,良好的用戶(hù)體驗(yàn)(我現(xiàn)在用Mac),啟動(dòng)速度較快,插件體系強(qiáng)大。現(xiàn)將VSC的安裝配置過(guò)程記錄如下。
前置條件是,python 2.7 已經(jīng)安裝完成,pip也已經(jīng)搞定。
首先在Microsoft Visual Studio Code 網(wǎng)站上下載安裝程序,選擇對(duì)應(yīng)的平臺(tái),我的是osx的。
安裝完成后,啟動(dòng)VSC,按 cmd+shift+P,啟動(dòng)快速命令攔,輸入ext ins,就會(huì)發(fā)現(xiàn)第一個(gè)選項(xiàng)是安裝插件,點(diǎn)擊回車(chē)來(lái)到插件邊欄。或者可以直接點(diǎn)擊最左邊一列圖標(biāo)最下面那個(gè),也會(huì)彈出插件邊欄。在插件邊欄輸入Python搜索,安裝Python 0.6.0插件。
安裝插件完成之后,點(diǎn)擊插件上的重新載入,或者重啟VSC,以便于載入插件。至此安裝完成,下面開(kāi)始編輯器配置。
VSC采用了類(lèi)似Sublime Text的全局->用戶(hù)->工作區(qū)層級(jí)配置的概念,后者可以覆蓋前者,用戶(hù)只能編輯用戶(hù)配置喝工程配置,全局配置都是默認(rèn)的。有一點(diǎn)VSC做的特別好的是,整個(gè)軟件的本地化特別好,連配置文件中也都是中文注釋。如果鼠標(biāo)懸浮到用戶(hù)或者工作區(qū)的某項(xiàng)配置上,會(huì)有個(gè)popup中文顯示當(dāng)前配置項(xiàng)的含義。如果想覆蓋并修改全局配置中的某一項(xiàng),可以懸浮到該配置項(xiàng)上,可以看到文字左邊出現(xiàn)了一個(gè)鉛筆樣的圖標(biāo),點(diǎn)擊這個(gè)圖標(biāo)即可將這條配置復(fù)制到用戶(hù)或者全局配置中做出修改,做的非常人性化。
比如我的用戶(hù)配置如下:
{ "workbench.colorTheme": "Material Theme", "editor.fontSize": 13, "editor.lineHeight": 18, "editor.rulers": [80,100], // 配置 glob 模式以排除文件和文件夾。 "files.exclude": { "**/*.pyc":true, "**/*.pyo":true, "**/.idea":true, "**/.settings":true, "**/.vscode":true, "**/.project":true, "**/.pydevproject":true }, "python.linting.pylintEnabled": false, "editor.fontFamily": "Hack" }
下載并使用了一個(gè)好看的主題Material Theme,字號(hào)調(diào)大到13,此時(shí)默認(rèn)行高為20,我覺(jué)得太大,調(diào)整到18,配置文件列表中不顯示某些后綴的文件,避免影響視野,同時(shí)下載了一個(gè)開(kāi)源程序字體Hack,配置為唯一顯示字體。
其中最需要注意的是python.linting.pylintEnabled這個(gè)選項(xiàng),我把pylint關(guān)掉了。或許是pylint本身的問(wèn)題或者是集成的問(wèn)題,pylint對(duì)flask的解析總是時(shí)對(duì)時(shí)錯(cuò),關(guān)閉是最好選擇。
對(duì)于Flask工程本身的配置,需要添加到工作區(qū)配置中。由于我們會(huì)經(jīng)常用到virtual env,所以實(shí)際上關(guān)鍵需要配置python命令本身的路徑如下(跟具體virtualenv的設(shè)置有關(guān)):
{ "python.pythonPath": "${workspaceRoot}/venv/bin/python" }
到這里,配置已經(jīng)能夠滿(mǎn)足python工程的高亮,代碼補(bǔ)全等編寫(xiě)功能了,快捷鍵也可以通過(guò)配置文件修改,配合VSC自帶的能力,已經(jīng)基本OK了,下面是Flask Debug的配置。
這點(diǎn)消耗了我相當(dāng)長(zhǎng)時(shí)間。官網(wǎng)給提供了兩種方式,都可以實(shí)現(xiàn)。
第一種適合Flask 0.11及以上版本,因?yàn)樵?.11版本起,出現(xiàn)了venv/bin/flask文件,配置可以寫(xiě)成:
{ "version": "0.2.0", "configurations": [ { "name": "Flask", "type": "python", "request": "launch", "stopOnEntry": false, "pythonPath": "${config.python.pythonPath}", "program": "${workspaceRoot}/venv/bin/flask", "env": { "FLASK_APP": "${workspaceRoot}/app.py" }, "args": [ "run", "--no-debugger", "--no-reload" ], "debugOptions": [ "WaitOnAbnormalExit", "WaitOnNormalExit", "RedirectOutput" ] } ] }
用flask.py文件啟動(dòng)Flask程序,實(shí)測(cè)可以觸發(fā)斷點(diǎn)。
對(duì)于在0.11以下版本的Flask而言,可以采用第二種方式:
{ "version": "0.2.0", "configurations": [ { "name": "Python", "type": "python", "request": "launch", "stopOnEntry": false, "pythonPath": "${config.python.pythonPath}", "program": "${file}", "debugOptions": [ "WaitOnAbnormalExit", "WaitOnNormalExit", "RedirectOutput" ] } ] }
切記!!! Flask在啟動(dòng)時(shí)必須指定 app.run(debug=False),一定不能開(kāi)啟調(diào)試!否則無(wú)法命中斷點(diǎn)。
調(diào)試時(shí)啟動(dòng)Flask程序的入口文件即可,也可以將${file}替換為實(shí)際的入口文件,這樣不用每次都切換到該文件才能開(kāi)啟調(diào)試。實(shí)測(cè)OK。
還有一種可以遠(yuǎn)程調(diào)試的方法:
需要先pip install ptvsd
if __name__ == "__main__": import ptvsd import socket try: address = ("127.0.0.1", 12345) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(address) except socket.error: ptvsd.enable_attach(None, address=("0.0.0.0", 8000)) manager.run()
在manager.run()或者app.run()之前,加入如上代碼,在8000端口開(kāi)啟遠(yuǎn)程調(diào)試(不是http服務(wù)的端口!)
比如從shell啟動(dòng)此Flask程序,VSC配置如下,F(xiàn)lask啟動(dòng)好之后啟動(dòng)調(diào)試監(jiān)聽(tīng)在8000端口上即可:
{ "name": "Attach (Remote Debug)", "type": "python", "request": "attach", "localRoot": "${workspaceRoot}", "remoteRoot": "${workspaceRoot}", "port": 8000, "host": "localhost" }
注意遠(yuǎn)程和本地的源碼路徑的前綴必須配置正確!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/45538.html
摘要:更改執(zhí)行策略可能會(huì)產(chǎn)生安全風(fēng)險(xiǎn),如中的幫助主題所述。如果出現(xiàn)選擇環(huán)境,我們選擇。在中,我們僅保留這一段。在中,我們新建一個(gè)文件,名為。到此,我們的環(huán)境配置就完成了。 在 Visual Studio Code 中配置 Python Flask 環(huán)境 本文由 赤石俊哉 原創(chuàng)編寫(xiě),您可以在學(xué)習(xí)交流用途以?xún)?nèi)自由使用文章。 但是禁止抄襲文章,轉(zhuǎn)載時(shí),請(qǐng)注明來(lái)源地址,謝謝。最后更新時(shí)間: 20...
摘要:在這個(gè)編輯器中,和是其中排名靠前的兩個(gè)。是一個(gè)免費(fèi)的輕量級(jí)編輯器和,用于和開(kāi)發(fā)。對(duì)于免費(fèi)的代碼編輯器來(lái)說(shuō),是一個(gè)很好的選擇。可以安裝兩個(gè)命令行實(shí)用程序,用于從啟動(dòng)編輯器,用于管理的軟件包。 對(duì)于JavaScript程序員來(lái)說(shuō),目前有很多很棒的工具可供選擇。本文將會(huì)討論10個(gè)優(yōu)秀的支持javascript,HTML5和CSS開(kāi)發(fā),并且可以使用Markdown進(jìn)行文檔編寫(xiě)的文本編輯器。為什...
摘要:菜鳥(niǎo)教程框架中文手冊(cè)入門(mén)目標(biāo)使用搭建通過(guò)對(duì)數(shù)據(jù)增刪查改沒(méi)了純粹占行用的拜 后端API入門(mén)學(xué)習(xí)指北 了解一下一下概念. RESTful API標(biāo)準(zhǔn)] 所有的API都遵循[RESTful API標(biāo)準(zhǔn)]. 建議大家都簡(jiǎn)單了解一下HTTP協(xié)議和RESTful API相關(guān)資料. 阮一峰:理解RESTful架構(gòu) 阮一峰:RESTful API 設(shè)計(jì)指南 RESTful API指南 依賴(lài)注入 D...
摘要:菜鳥(niǎo)教程框架中文手冊(cè)入門(mén)目標(biāo)使用搭建通過(guò)對(duì)數(shù)據(jù)增刪查改沒(méi)了純粹占行用的拜 后端API入門(mén)學(xué)習(xí)指北 了解一下一下概念. RESTful API標(biāo)準(zhǔn)] 所有的API都遵循[RESTful API標(biāo)準(zhǔn)]. 建議大家都簡(jiǎn)單了解一下HTTP協(xié)議和RESTful API相關(guān)資料. 阮一峰:理解RESTful架構(gòu) 阮一峰:RESTful API 設(shè)計(jì)指南 RESTful API指南 依賴(lài)注入 D...
閱讀 3186·2019-08-30 15:55
閱讀 2952·2019-08-30 13:46
閱讀 1454·2019-08-29 17:29
閱讀 3522·2019-08-29 11:08
閱讀 3445·2019-08-29 11:04
閱讀 1093·2019-08-28 18:20
閱讀 552·2019-08-26 13:37
閱讀 1334·2019-08-26 11:49