python.pythonPath 경로대로 virtualenv 를 설정하기 위해서는 ctrl+shitf+P 를 누른 후, python select interprenter 를 선택한 후 해당 경로대로 python 을 선택하면 된다. python.pythonPath 를 넣지않고 하면 해당 경로 자체가 뜨지 않는다.
{
// virtualenv 내 파이썬 경로
"python.pythonPath": "C:\\tools\\python37_64\\py_envs\\vtest\\Scripts\\python.exe",
// vurtalenv 경로
"python.venvPath": "C:\\tools\\python37_64\\py_envs\\vtest",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
// which 나 where 를 이용해서 실제 pylint 경로를 찾는다.
"python.linting.pylintPath": "C:\\tools\\python37_64\\py_envs\\vtest\\Scripts\\pylint.exe",
// python code lint 옵션
// 해당 경로를 .vscode 폴더내 파일로 잡는다.
"python.linting.pylintArgs": [
"--rcfile",
"${workspaceRoot}\\.vscode\\pylint.config"
],
// vscode testing 옵션
"python.testing.pytestArgs": [
".","-s"
],
"python.testing.pytestEnabled": true,
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false
}
pylint.config
위 파일에서 "python.linting.pylintArgs" 을 설정한 경로가 이 파일이다.
[MESSAGES CONTROL]
#C0111 Missing docstring
#C0103 Invalid constant name
#C0301 Line too long
#C0303 trailing whitespace
#C0325:Unnecessary parens after u'print' keyword
#W0621 : Redefining name 'something' from outer scope (line #)
#W0212 : Access to a protected member %s of a client class
#W0703 : Catching too general exception Exception
disable=C0111,C0103,C0303,C0301,C0325,W0621,W0212,W0703
launch.json
run 과 debug 할 때의 환경 설정
{
// IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
// 기존 특성에 대한 설명을 보려면 가리킵니다.
// 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
"version": "0.2.0",
"configurations": [
{
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${file}",
"cwd": "${workspaceRoot}",
"env": {},
"envFile": "${workspaceRoot}/.env",
},
{
"name": "Integrated Terminal/Console",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "${config:python.pythonPath}",
"program": "${file}",
"cwd": "",
"console": "integratedTerminal",
"env": {},
"envFile": "${workspaceRoot}/.env",
},
]
}
샘플코드
main.py
def hello(world):
# 아래 aa 변수 pylint 에러발생, Unused variable 'aa'pylint(unused-variable)
aa = 1
print("Hello " + world)
if __name__ == "__main__":
hello("world")
# 아래 줄에 빈 엔터가 없으면 Final newline missingpylint(missing-final-newline)
pylint 가 정상 동작한다면 물결표의 error, warning 표시가 발생해야 한다. 정상적으로 launch.json 가 적용되면 디버깅 또는 실행탭에서 Python 으로 선택해서 실행하면 정상적으로 Hello world 가 출력된다.
tests/test_main.py(pytest 용, 경로명과 파일이름과 method 명에 test 가 꼭 들어가야 한다. )
* Regular Expression Online 사이트 자바스크립트나 파이썬 등에서 Regular Expression 을 이용해서 검색하거나 값을 추출 할 때 여러 테스트를 해가면서 테스트 하기 좋은 방법이다. Regular Expression Online이라고 구글에서 검색해서 찾아보자.
* json online parser 사이트 JSON 형태의 데이터를 한 줄 한 줄 볼 수 있어 좋다. json online parser 라고 구글에서 검색해서 찾아보자
* base64 decode online 사이트 base 인코딩, 디코딩을 바로 확인 할 수 있다.
* https://jsfiddle.net/ 이 사이트는 사이트 주소를 직접 넣었다. 그 만큼 이 사이트 자체가 좀 강력하다. javascript , html, css 를 테스트 해보기 좋은 사이트다. 다만 IE에서 안된다.
* https://caniuse.com/ 이 사이트는 특정 브라우저에서 해당 기능이 동작하는지 확인하는 용도로 많이 사용한다. 내 경우에서는 굳이 이사이트 들어와서 찾지 않고, 구글에서 can i use websocket 이런 식으로 검색하고 이 사이트가 맨 처음 나온다.