카테고리 없음

env 설정 bat파일 구성하기

Aaronia 2025. 1. 22. 01:11

기본 변수 설정

 

set ENV_NAME=topik
FOR /F "delims=" %%i IN ('conda info --base') DO SET CONDA_BASE=%%i
set PYTHON_VERSION=3.12.7

CONDA_BASE는 명령어를 통한 conda의 경로를 저장하기위한 코드

 


conda 설치 여부 확인

 

sh -z 옵션은 뒤따르는 문자열이 비어있는지(length가 0인지) 확인한다.

if [ -z "$(command -v conda)" ];

 

bat - conda 버전 확인 명령어를 실행하여 에러코드를 반환 / 조건문으로 체킹 (이때 0이면 정상, 그 외 반환값은 에러임)

call conda --version >nul 2>&1
IF %errorlevel% NEQ 0 ( 
    echo Conda is not available. Please ensure Conda is installed.
    pause
)

 


확인 후 콘다환경실행

 

sh - sh파일을 통해 Conda 환경에서 명령어를 사용 가능하도록 초기화 스크립트이다

source $(conda info --base)/etc/profile.d/conda.sh

 

bat - 윈도우환경에서는 sh대신 bat파일에 activate를 통해 초기화 및 활성화 작업을 해준다

call %CONDA_BASE%\condabin\conda.bat activate

 

 


topik 가상환경이 존재하는지 확인

 

sh - 리눅스환경에서 grep  및 -q를 통해 ENV_NAME의 가상환경이 존재하는지 확인

if conda info --envs | grep -q "^$ENV_NAME";

 

bat - grep 대신 find로 대체하여 사용하여, 파일이 존재하지 않을때 error_level을 통해 구분하고자 하였음. 하지만 find는 찾지 못하더라도 에러가아닌 '없다'라는 값을 돌려주어 항상 error_level은 0으로 조건문으로 확인하지 못함.

=> 기존에 변수로 저장해두었던 CONDA_BASE를 활용해 직접 찾아들어가기로 결정

IF EXIST "%CONDA_BASE%\envs\%ENV_NAME%\" (

 

그외 조건문 전체는 코드를 보면 이해가능 ㅎ.ㅎ

 


conda 환경 생성

 

sh - 말그대로 conda 가상환경 topik 생성 과정

# Conda 환경 생성
echo "Creating Conda environment '$ENV_NAME' with Python $PYTHON_VERSION..."
conda create -n $ENV_NAME python=$PYTHON_VERSION -y

# Conda 환경 활성화
echo "Activating environment '$ENV_NAME'..."
conda activate $ENV_NAME

 

bat - echo 에 "" 없애고, 함수 call로 호출해주는걸로 수정

::가상환경 생성
echo Creating Conda environment %ENV_NAME% with Python %PYTHON_VERSION%...
call conda create -n %ENV_NAME% python=%PYTHON_VERSION% -y

::가상환경 시작
echo Activating environment %ENV_NAME%...
call conda activate %ENV_NAME%

 


requirements.txt 설치

 

sh - -f 를 통해 파일 존재여부 확인

if [ -f "requirements.txt" ];

 

bat - EXIST 를 통해 파일존재여부 확인

IF EXIST "requirements.txt" (