VSCode 작업에서 Anaconda 가상 환경 사용(Windows)

2622 단어 AnacondaVSCode
Windows에서 VSCode에서 Anaconda (Miniconda)의 가상 환경을 사용할 때의 약간의 Tips입니다. 이 문서에서는 Miniconda3을 C:/Miniconda3에 설치 한 것으로 설명합니다.

Python의 개발 환경이라면 인터프리터로 Anaconda의 가상 환경을 선택할 수 있기 때문에 문제는 없습니다만, Python을 사용하지 않고 Anaconda의 가상 환경을 사용하려고 하면 조금 설정이 필요합니다. Anaconda는 Python 이외에도 가상 환경으로 편리하므로 VSCode의 태스크와 연계시켜 효율화 할 수 있으면 좋겠다고 생각합니다. 또한 환경 변수 PATH에 등록하는 것은 쉽지만, 그렇게하지 않는다고 가정합니다.

VSCode 터미널에서 Anaconda (Miniconda) 가상 환경을 사용할 때 terminal.integrated.shell.windowsterminal.integrated.shellArgs.windows에서 다음과 같이 설정하는 방법을 찾습니다.
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", 
  "C:\\Miniconda3\\Scripts\\activate.bat", 
  "C:\\Miniconda3"],

이제 터미널을 열면 가상 환경이 base 상태가됩니다.



그러나이 설정을 사용하면 VSCode 작업을 실행하면 인수가 일치하지 않아 작동하지 않을 수 있습니다. 예를 들어, 작업 유형이 npm이고 스크립트가 install이면 실행하면



이것은 실제로
C:\Miniconda3\Scripts\activate.bat C:\Miniconda3 /d /c npm install

가 실행 중이며 activate.bat의 인수가 잘못되었습니다.
따라서 다음과 같은 배치 파일을 사용하여 대응합니다. 적절한 위치에 예를 들어 C:\Miniconda3\vscode_conda.bat라는 파일을 만듭니다. 그 파일의 내용은 다음과 같이 합니다.
@echo off
call C:\Miniconda3\Scripts\activate.bat C:\Miniconda3
setlocal enableDelayedExpansion
set command=
:loop
if "%1"=="/d" goto :next
if "%1"=="/c" goto :next
if "%1"=="" goto :confirm
if "!command!"=="" (
    set command=%1
) else (
    set command=!command! %1
)
:next
shift
goto :loop
:confirm
if not "!command!"=="" !command!
endlocal

간단히 설명하면 먼저 Anaconda 가상 환경을 활성화 한 다음 인수 /d /c 이상을 명령으로 다시 실행합니다.
따라서이 방법은 /d /c 옵션을 무시합니다.

이것을 terminal.integrated.shellArgs.windows로 설정하십시오.
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", "C:\\Miniconda3\\vscode_conda.bat"];

이제 터미널을 열거나 작업을 실행하더라도 Anaconda의 가상 환경에서 실행됩니다.

이 방법 이외에 더 스마트한 방법이 있으면, 가르쳐 주면 도움이 됩니다.

좋은 웹페이지 즐겨찾기