摘要:更改執(zhí)行策略可能會產(chǎn)生安全風險,如中的幫助主題所述。如果出現(xiàn)選擇環(huán)境,我們選擇。在中,我們僅保留這一段。在中,我們新建一個文件,名為。到此,我們的環(huán)境配置就完成了。
在 Visual Studio Code 中配置 Python Flask 環(huán)境
本文由 赤石俊哉 原創(chuàng)編寫,您可以在學習交流用途以內(nèi)自由使用文章。
但是禁止抄襲文章,轉(zhuǎn)載時,請注明來源地址,謝謝。
最后更新時間: 2017年11月24日 17:53:15更多文章可以參見 小赤石的Code Space
0. 準備階段
1. 在 vscode 中安裝 python 語言支持
2. 使用 pip 安裝 virtualenv、pylint、yapf
virtualenv
pylint
yapf
安裝過程
安裝中可能出現(xiàn)的問題
UnicodeEncodeError "utf-8" codec can"t encode character...
3. 修改 vscode 中的設置
4. 使用 virtualenv 創(chuàng)建工程目錄
創(chuàng)建文件夾并配置虛擬環(huán)境
往虛擬環(huán)境中安裝包
5. 修改 launch.json
6. 創(chuàng)建測試代碼并運行測試
0. 準備階段本文默認您已經(jīng)完成了以下工作的情況:
1. 安裝完成了 Visual Studio Code。 2. 安裝完成了 Python 3.6.3 并且將 Python 添加到系統(tǒng)變量 PATH 中。1. 在 vscode 中安裝 python 語言支持
運行 vscode,按下 Ctrl + P,會打開一個輸入框,輸入 ext install python,就會進入擴展商店,搜索 python。
我們需要的是發(fā)行者為 Microsoft 的那一個名為 Python 的擴展。點擊 安裝 按鈕,安裝完成之后,點擊 重新加載。
下面是各個包的簡單說明,如果您足夠了解的話,可以直接跳轉(zhuǎn)到 安裝過程 小節(jié)。
virtualenvpylint摘自:廖雪峰的官方網(wǎng)站 - virtualenv
在開發(fā) Python 應用程序的時候,系統(tǒng)安裝的 Python3 只有一個版本:3.4。所有第三方的包都會被 pip 安裝到Python3的 site-packages 目錄下。
如果我們要同時開發(fā)多個應用程序,那這些應用程序都會共用一個 Python,就是安裝在系統(tǒng)的 Python 3。
如果應用 A 需要 jinja 2.7,而應用 B 需要 jinja 2.6 怎么辦?
這種情況下,每個應用可能需要各自擁有一套“獨立”的 Python 運行環(huán)境。virtualenv 就是用來為一個應用創(chuàng)建一套“隔離”的 Python 運行環(huán)境。
摘自:如何使用 Pylint 來規(guī)范 Python 代碼風格
Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標準(Pylint 默認使用的代碼風格是 PEP 8,具體信息,請參閱參考資料)和有潛在問題的代碼。
簡單的來說,Pylint 為我們提供了糾錯的功能,如果你希望在你的代碼中,及時發(fā)現(xiàn)標注波浪線的錯誤,請安裝它。
yapf摘自:有哪些命令行的軟件堪稱神器? - int32bit的回答 - 知乎
Google開發(fā)的python代碼格式規(guī)范化工具,支持pep8以及Google代碼風格。
簡單的說, yapf 為我們提供了格式化代碼的功能,如果你希望在你的代碼中,使用 Alt + Shfit + F 來自動格式化你的 Python 代碼,請安裝它。
安裝過程使用下面的命令依次安裝他們:
pip install virtualenv pip install pylint pip install yapf安裝中可能出現(xiàn)的問題
下面總結(jié)一下,筆者在安裝中出現(xiàn)過的問題,以及解決方法。
UnicodeEncodeError "utf-8" codec can"t encode character...這個也是一個比較常見的問題,遇到這個問題時,可以參考錯誤中的倒數(shù)第三行中的路徑:
... File "c:usersxxxappdatalocalprogramspythonpython36-32libsite-packagespipcompat\__init__.py", line 75, in console_to_str return s.decode("utf_8") UnicodeDecodeError: "utf-8" codec can"t decode byte 0xc1 in position 55: invalid start byte
比如,上面的錯誤中,我們打開c:usersxxxappdatalocalprogramspythonpython36-32libsite-packagespipcompat\__init__.py這個文件,定位到 第 75 行。
將 return s.decode("utf_8") 改為 return s.decode("cp936")
如上操作可能需要管理員權(quán)限,建議使用 Windows + X 使用管理員權(quán)限的命令提示符或者管理員權(quán)限的 PowerShell。
然后輸入 code c:usersxxxappdatalocalprogramspythonpython36-32libsite-packagespipcompat\__init__.py 改成對應你的文件名。
打開 vscode,進入 文件 > 首選項 > 設置,按照下面的注釋修改對應的值。
// 如果使用 pylint, 設置下面的為 true。如果使用其他語法糾錯的庫,可以將對應的設置為 true,其他的設置為 false。 "python.linting.pylintEnabled": true // 如果安裝了 yapf,并且希望使用 yapf 格式化代碼的,請修改下面的選項。 "python.formatting.provider": "yapf"4. 使用 virtualenv 創(chuàng)建工程目錄
為每一個 Python 項目配置一個獨立的環(huán)境和目錄,是一個比較好的想法,這樣你可以根據(jù)需要安裝不同的庫以及版本。
這一小節(jié),將使用 virtualenv 創(chuàng)建一個虛擬環(huán)境,并且安裝 flask。
首先,我們先啟動一個具有管理員權(quán)限的 PowerShell。(你也可以使用 CMD)
假設我們需要將項目放在 D:pydemo 這個文件夾內(nèi)。
PS D:> mkdir pydemo PS D:> cd pydemo PS D:pydemo> virtualenv --no-site-packages .venv Using base prefix "c:program filespython36" New python executable in D:pydemo.venvScriptspython.exe Installing setuptools, pip, wheel...done. PS D:pydemo>
如果出現(xiàn)上面的提示,就說明安裝已經(jīng)完成了,接下來我們要將 PowerShell 的環(huán)境切換到這個虛擬環(huán)境中。
在 PowerShell 中:
PS D:pydemo> ./.venv/Scripts/activate.ps1 (.venv) PS D:pydemo>
如果提示錯誤,可以嘗試使用下面的方法解決
(.venv) PS D:pydemo> Set-ExecutionPolicy RemoteSigned 執(zhí)行策略更改 執(zhí)行策略可幫助你防止執(zhí)行不信任的腳本。更改執(zhí)行策略可能會產(chǎn)生安全風險,如 http://go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 幫助主題所述。是否要更改執(zhí)行策略? [Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暫停(S) [?] 幫助 (默認值為“N”): Y
如果你使用的是 CMD,則使用下面的命令:
D:pydemo> ./.venv/Scripts/activate.bat (.venv) D:pydemo>往虛擬環(huán)境中安裝包
如果你的命令行,或者 PowerShell 已經(jīng)變成了
(.venv) PS D:pydemo>
前面有一個括號,表示的是你最開始創(chuàng)建的虛擬環(huán)境的位置,那么這就說明你已經(jīng)把上下文的環(huán)境切換到了虛擬環(huán)境里面。
我們在這里面安裝的 pip 就不會放到公共的 site-packages 里面了。
執(zhí)行下面的命令安裝 flask 和 watchdog(如果又出現(xiàn) UnicodeEncodeError,參考上一節(jié)所描述的解決方案,修改虛擬環(huán)境中的 __init__.py。)
(.venv) PS D:pydemo> pip install flask Collecting flask Using cached Flask-0.12.2-py2.py3-none-any.whl Collecting Jinja2>=2.4 (from flask) Using cached Jinja2-2.10-py2.py3-none-any.whl Collecting Werkzeug>=0.7 (from flask) Using cached Werkzeug-0.12.2-py2.py3-none-any.whl Collecting click>=2.0 (from flask) Using cached click-6.7-py2.py3-none-any.whl Collecting itsdangerous>=0.21 (from flask) Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->flask) Installing collected packages: MarkupSafe, Jinja2, Werkzeug, click, itsdangerous, flask Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.12.2 click-6.7 flask-0.12.2 itsdangerous-0.24 (.venv) PS D:pydemo> pip install watchdog Collecting watchdog Collecting argh>=0.24.1 (from watchdog) Using cached argh-0.26.2-py2.py3-none-any.whl Collecting PyYAML>=3.10 (from watchdog) Collecting pathtools>=0.1.1 (from watchdog) Installing collected packages: argh, PyYAML, pathtools, watchdog Successfully installed PyYAML-3.12 argh-0.26.2 pathtools-0.1.2 watchdog-0.8.3 (.venv) PS D:pydemo>
安裝完成之后,我們可以從 PowerShell 中直接運行 vscode 并且將工作目錄設置為當前目錄(也就是D:pydemo)。
(.venv) PS D:pydemo> code .5. 修改 launch.json
打開 vscode 之后,使用 Ctrl + Shift + D,或者點擊側(cè)邊欄的調(diào)試選項,調(diào)出調(diào)試選項側(cè)邊欄。
然后點擊齒輪 配置或修復 "launch.json",自動生成一個 launch.json。
如果出現(xiàn)選擇環(huán)境,我們選擇 Python。
在 configurations 中,我們僅保留 "name": "Python: Flask (0.11.x or later)"這一段。其他的全部刪掉。
將這一段配置中的下面幾個選項重新配置一下:
// 將 Python 指定為虛擬環(huán)境中的 Python "pythonPath": "${workspaceRoot}/.venv/Scripts/python.exe" // 將 program 和 env.FLASK_APP 都設定為你這個項目的入口文件。 "program": "${workspaceRoot}/main.py" "env": { "FLASK_APP": "${workspaceRoot}/main.py" }
配置完之后,應該是這樣的:
{ "version": "0.2.0", "configurations": [ { "name": "Python: Flask (0.11.x or later)", "type": "python", "request": "launch", "stopOnEntry": false, "pythonPath": "${workspaceRoot}/.venv/Scripts/python.exe", "program": "${workspaceRoot}/main.py", "cwd": "${workspaceRoot}", "env": { "FLASK_APP": "${workspaceRoot}/main.py" }, "args": [ "run", "--no-debugger", "--no-reload" ], "envFile": "${workspaceRoot}/.env", "debugOptions": [ "WaitOnAbnormalExit", "WaitOnNormalExit", "RedirectOutput" ] } ] }
保存并關閉。
6. 創(chuàng)建測試代碼并運行測試使用 Ctrl + Shift + E 或者點擊左側(cè)邊欄的文件,回到文件側(cè)邊欄。
在 pydemo 中,我們新建一個文件,名為main.py。如果你上面的配置指定的是其他文件名,可以修改成你自己指定的。
并加入下面的代碼:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.debug = False app.run(host="localhost", port=5000)
這里必須將 app.debug 設置為 False,否則會出現(xiàn)一直Restarting。
按下 F5 運行代碼,將會在 調(diào)試控制臺 中看到:
* Running on http://localhost:5000/ (Press CTRL+C to quit)
這個時候,我們可以通過瀏覽器訪問http://localhost:5000/,會有 Hello World! 顯示。
到此,我們的環(huán)境配置就完成了。
參考文章:
https://www.liaoxuefeng.com/w...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44501.html
摘要:最近由于工作關系,開始寫程序,同事有用的,有用的。第一種適合及以上版本,因為在版本起,出現(xiàn)了文件,配置可以寫成用文件啟動程序,實測可以觸發(fā)斷點。 最近由于工作關系,開始寫flask web程序,同事有用Vim的,有用PyCharm的。在調(diào)研了一通python的編輯器,IDE之后,發(fā)現(xiàn)Visual Studio Code相對比較適合我。 VSC有相對較全的功能,比較好看舒服的主題,良好的...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數(shù)據(jù)增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協(xié)議和RESTful API相關資料. 阮一峰:理解RESTful架構(gòu) 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數(shù)據(jù)增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協(xié)議和RESTful API相關資料. 阮一峰:理解RESTful架構(gòu) 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
摘要:菜鳥教程框架中文手冊入門目標使用搭建通過對數(shù)據(jù)增刪查改沒了純粹占行用的拜 后端API入門學習指北 了解一下一下概念. RESTful API標準] 所有的API都遵循[RESTful API標準]. 建議大家都簡單了解一下HTTP協(xié)議和RESTful API相關資料. 阮一峰:理解RESTful架構(gòu) 阮一峰:RESTful API 設計指南 RESTful API指南 依賴注入 D...
閱讀 3448·2023-04-26 00:39
閱讀 4039·2021-09-22 10:02
閱讀 2532·2021-08-09 13:46
閱讀 1098·2019-08-29 18:40
閱讀 1444·2019-08-29 18:33
閱讀 773·2019-08-29 17:14
閱讀 1513·2019-08-29 12:40
閱讀 2970·2019-08-28 18:07