pyCharm에서는 그냥 되던게, Visual Studio Code에서는 안되네요.
작업디렉토리에 있는 Main.py가 아닌, 아래 모듈에서 실행을 하면 프로젝트의 다른 모듈을 못찾아서 ModuleNotFoundError가 납니다. 원인은 모듈 검색 경로에 working directory 를 못찾아서 발생하는 거라고 합니다.
하위 경로의 모듈을 실행하려면, 파이썬은 모듈검색 과정에서 working Directory를 추가해줘야 한다. (3번 참조)
참고로, 모듈 검색과정은 sys.modules, build-in moudels, sys.path 순서로 진행되고, 실행위치는 sys.path에 포함된다.
- 참조 visual studio code Docs : https://code.visualstudio.com/docs
1. 현재환경
- anaconda로 가상환경 사용
- python : 3.9 (32bit) - 아나콘다로 가상환경을 사용중
2. 실행 및 디버그 수행 - F5 (Ctrl + Shift + D) 해결방법 (빠른 실행은 3.번을 읽어주세요)
1) visual studio code에서, Ctrl + Shift + P 누른후, python Select Interpreter를 가상환경으로 변경한다.
2) Ctrl + Shift + `를 누르고, 새 터미널을 생성한다. 새 터미널 우측 에 [+]옆 아래 화살표를 누르면,
메뉴가 나오는데, "기본 프로필 선택" 선택한다. 이때, Command + Prompt를 선택한다.
기본 설정인, PowerShell에서는 실핼 때, 아나콘다 가상환경이 설정환경으로 변경이 되지 않았다.
다행히 기본 Command + Prompt 로 수행하면, 정상처리가 된다.
3) Ctrl + Shift + D를 누르고, "실행 및 디버그"에서 launch.json파일을 만들고,
기본 설정에 아래와 같이 env 설정을 추가한다.
4) F5(디버깅 시작) or Ctrl + F5(디버깅없이 시작)
그런데.... 매번 이러니까... 느림.....
# .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 메인",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
"justMyCode": true
}
]
}
3. Run Code, .... 수행 - F5 (Ctrl + Alt + D) 해결방법
2.번 방법은 수행이 느리고, pyCharm보다 왜 느릴까 하다가 다시 방법을 찾아봄.
Code Runner 를 깔면, py파일 우측 상단에 ▷화살표가 표시되는데, Run Code, Run Python File, ... 표시됨.
실행이 여기 저기 있다보니 햇갈림. Run Code 는 Code 터미널이 별도로 수행이 되고 있고, 환경을 잡아 주면 Code 수행 터미널에서 수행이 됨. 그래서 Run Code 환경을 추가함.
1, 2) 2.번의 1), 2) 까지는 동일함.
3) Ctrl + P를 누르면, setting.json 설정환경을 수정할 수 있습니다. setting.json에서 아래 아래 환경을 추가합니다.
아래 환경을 추가하면, terminal에서 작업폴더가 PYTHONPATH에 자동으로 추가됩니다.
그리고, 2.번 launch.json 파일의 PYTHONPATH 설정해도 됩니다.
다른 OS는 terminal.integrated.env.linux, terminal.integrated.env.osx 참조하세요.
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}"
}
4) Run Code 시, conda activate가 cmd 초기에 늦게 수행이 되서 처음에 오류나 발생해서, .vscode/settings.json파일을 만들고 기본 Command를 추가한 후 기본으로 설정함. (2.2) 번을 다시 변경함). 이렇게 하면 cmd 수행 시 바로 conda activate 가 되고, 수행을 한다.
# .vscode/setting.json
{
"terminal.integrated.profiles.windows": {
"Cmd-Conda": {
"path": ["cmd.exe"],
"args": ["/K","C:\\Users\\아이디\\Anaconda3\\Scripts\\activate.bat", "system_trading_py39_32"]
}
},
"terminal.integrated.defaultProfile.windows": "Cmd-Conda"
}
5) ▷화살표를 누르거나, Ctrl + Alt + N으로 수행한다. 런처보다는 빠르게 수행인된다.
ps. Run Code는 잘 되는데, Run Python File 수행은 오류가 발생... 아, 이건 그냥 "실행 및 디버그"로 수행하는 걸로.