1. 程式人生 > >Flask在VSCODE下基本開發環境配置

Flask在VSCODE下基本開發環境配置

1.建立環境

cd /project/path
python3 -m venv venv

第一個VENV是命令,第二個是資料夾名

如果環境不要了,一般做法是直接整個(VENV)資料夾刪掉

環境修改下面會說

2.啟用環境

. venv/bin/activate

 

venv是1中建立的資料夾,這麼寫是接1,即認為你當前路徑在VENV同級路徑

執行過1後,會在VENS下建立一系列檔案,其中2中所用的是啟用指令碼

3.修改pip映象為國內源

mkdir ~/.pip   
vim ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

清華源,會比阿里的源更新的更快一些

修改後,PIP下載包的速度會提高很多,大部分都不會等太久

4.安裝專案依賴包

pip install -r requirement.txt

 

requirement.txt一般是大家的約定檔名

裡面存放專案依賴等pip包,因為源或者其他環境因素可能會有安裝失敗的情況

最終結果以 pip list 返回結果為準

5.VS code 中Debug Flask程式配置 修改.vscode中的launch.json為如下內容

{      
    "name": "Python: 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"
    ]
}

截至發部落格時間vs外掛自帶的配置是有問題的

修改後可以使用斷點除錯,變數觀察等IDE特性

6.解決 E1101:Instance of 'SQLAlchemy' has no 'Table' member 誤報問題

pip install pylint-flask
然後在 VS code中修改setting.json
"python.linting.pylintArgs": ["--load-plugins", pylint_flask"]

目前python等linting外掛對SQLAlchemy支援是有問題的,會有誤報

但是用6所用方法修改之後,在跳轉的時候有時還會有問題

9.unittest在VS code的配置
    "python.unitTest.unittestArgs": [         "-v",         "-s",         ".",       "-p",      "test*.py"      ],     "python.unitTest.pyTestEnabled": false,     "python.unitTest.nosetestsEnabled": false,     "python.unitTest.unittestEnabled": true

 

unittest預設的discover是test*.py,在vscoder中,三個用一個,必須禁用另外兩個

[1,2,4] http://flask.pocoo.org/docs/1.0/installation/
[3] http://www.cnblogs.com/biglittleant/p/6944180.html 

[5] https://donjayamanne.github.io/pythonVSCodeDocs/docs/debugging_debugging-flask/ , https://www.jianshu.com/p/0f9fd8823d90 

[6] https://stackoverflow.com/questions/28193025/pylint-cant-find-sqlalchemy-query-member