摘要:最近由于工作關系,開始寫程序,同事有用的,有用的。第一種適合及以上版本,因為在版本起,出現了文件,配置可以寫成用文件啟動程序,實測可以觸發斷點。
最近由于工作關系,開始寫flask web程序,同事有用Vim的,有用PyCharm的。在調研了一通python的編輯器,IDE之后,發現Visual Studio Code相對比較適合我。
VSC有相對較全的功能,比較好看舒服的主題,良好的用戶體驗(我現在用Mac),啟動速度較快,插件體系強大。現將VSC的安裝配置過程記錄如下。
前置條件是,python 2.7 已經安裝完成,pip也已經搞定。
首先在Microsoft Visual Studio Code 網站上下載安裝程序,選擇對應的平臺,我的是osx的。
安裝完成后,啟動VSC,按 cmd+shift+P,啟動快速命令攔,輸入ext ins,就會發現第一個選項是安裝插件,點擊回車來到插件邊欄。或者可以直接點擊最左邊一列圖標最下面那個,也會彈出插件邊欄。在插件邊欄輸入Python搜索,安裝Python 0.6.0插件。
安裝插件完成之后,點擊插件上的重新載入,或者重啟VSC,以便于載入插件。至此安裝完成,下面開始編輯器配置。
VSC采用了類似Sublime Text的全局->用戶->工作區層級配置的概念,后者可以覆蓋前者,用戶只能編輯用戶配置喝工程配置,全局配置都是默認的。有一點VSC做的特別好的是,整個軟件的本地化特別好,連配置文件中也都是中文注釋。如果鼠標懸浮到用戶或者工作區的某項配置上,會有個popup中文顯示當前配置項的含義。如果想覆蓋并修改全局配置中的某一項,可以懸浮到該配置項上,可以看到文字左邊出現了一個鉛筆樣的圖標,點擊這個圖標即可將這條配置復制到用戶或者全局配置中做出修改,做的非常人性化。
比如我的用戶配置如下:
{ "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" }
下載并使用了一個好看的主題Material Theme,字號調大到13,此時默認行高為20,我覺得太大,調整到18,配置文件列表中不顯示某些后綴的文件,避免影響視野,同時下載了一個開源程序字體Hack,配置為唯一顯示字體。
其中最需要注意的是python.linting.pylintEnabled這個選項,我把pylint關掉了。或許是pylint本身的問題或者是集成的問題,pylint對flask的解析總是時對時錯,關閉是最好選擇。
對于Flask工程本身的配置,需要添加到工作區配置中。由于我們會經常用到virtual env,所以實際上關鍵需要配置python命令本身的路徑如下(跟具體virtualenv的設置有關):
{ "python.pythonPath": "${workspaceRoot}/venv/bin/python" }
到這里,配置已經能夠滿足python工程的高亮,代碼補全等編寫功能了,快捷鍵也可以通過配置文件修改,配合VSC自帶的能力,已經基本OK了,下面是Flask Debug的配置。
這點消耗了我相當長時間。官網給提供了兩種方式,都可以實現。
第一種適合Flask 0.11及以上版本,因為在0.11版本起,出現了venv/bin/flask文件,配置可以寫成:
{ "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文件啟動Flask程序,實測可以觸發斷點。
對于在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在啟動時必須指定 app.run(debug=False),一定不能開啟調試!否則無法命中斷點。
調試時啟動Flask程序的入口文件即可,也可以將${file}替換為實際的入口文件,這樣不用每次都切換到該文件才能開啟調試。實測OK。
還有一種可以遠程調試的方法:
需要先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端口開啟遠程調試(不是http服務的端口!)
比如從shell啟動此Flask程序,VSC配置如下,Flask啟動好之后啟動調試監聽在8000端口上即可:
{ "name": "Attach (Remote Debug)", "type": "python", "request": "attach", "localRoot": "${workspaceRoot}", "remoteRoot": "${workspaceRoot}", "port": 8000, "host": "localhost" }
注意遠程和本地的源碼路徑的前綴必須配置正確!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45538.html
摘要:更改執行策略可能會產生安全風險,如中的幫助主題所述。如果出現選擇環境,我們選擇。在中,我們僅保留這一段。在中,我們新建一個文件,名為。到此,我們的環境配置就完成了。 在 Visual Studio Code 中配置 Python Flask 環境 本文由 赤石俊哉 原創編寫,您可以在學習交流用途以內自由使用文章。 但是禁止抄襲文章,轉載時,請注明來源地址,謝謝。最后更新時間: 20...
摘要:在這個編輯器中,和是其中排名靠前的兩個。是一個免費的輕量級編輯器和,用于和開發。對于免費的代碼編輯器來說,是一個很好的選擇。可以安裝兩個命令行實用程序,用于從啟動編輯器,用于管理的軟件包。 對于JavaScript程序員來說,目前有很多很棒的工具可供選擇。本文將會討論10個優秀的支持javascript,HTML5和CSS開發,并且可以使用Markdown進行文檔編寫的文本編輯器。為什...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數據增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數據增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協議和RESTful API相關資料. 阮一峰:理解RESTful架構 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
閱讀 3164·2019-08-30 15:55
閱讀 2945·2019-08-30 13:46
閱讀 1447·2019-08-29 17:29
閱讀 3514·2019-08-29 11:08
閱讀 3439·2019-08-29 11:04
閱讀 1088·2019-08-28 18:20
閱讀 545·2019-08-26 13:37
閱讀 1327·2019-08-26 11:49