본문 바로가기

macOS/Mac Mini로 서버 만들기

[프로젝트 생성 - 1] Python 가상환경 설정 완벽 가이드

반응형

Python 프로젝트를 시작할 때 가상환경을 설정하는 것은 매우 중요한 과정입니다. 특히 M1 맥미니와 같은 맥OS 환경에서 가상환경을 잘 활용하면 패키지 관리와 프로젝트 독립성을 유지할 수 있습니다. 이번 글에서는 가상환경의 생성부터 관리까지 완벽하게 정리해보겠습니다.


1. 가상환경을 사용하는 이유

 

Python 프로젝트에서 가상환경을 사용하는 이유는 다음과 같습니다:

1. 프로젝트별 독립적인 환경

프로젝트마다 필요한 패키지와 버전이 다를 수 있습니다. 가상환경을 사용하면 각 프로젝트의 패키지 충돌을 방지할 수 있습니다.

2. 시스템 Python 오염 방지

시스템에 설치된 Python과 패키지들을 보호하고, 깨끗한 개발 환경을 유지할 수 있습니다.

3. 배포 및 협업 용이성

requirements.txt를 통해 동일한 패키지 환경을 재현할 수 있습니다.


2. 가상환경 설치 위치

 

가상환경은 크게 두 가지 위치에 설치할 수 있습니다:

1. 프로젝트 폴더 안에 설치

프로젝트 폴더 안에 가상환경을 생성하면 프로젝트와 함께 가상환경이 관리되므로 직관적입니다.

cd myproject
python3 -m venv venv

 

디렉터리 구조 예시:

myproject/
    venv/         # 가상환경
    manage.py
    myproject/

 

장점: 프로젝트를 복사하거나 옮길 때 가상환경까지 함께 관리됩니다.

단점: 프로젝트 폴더 안에 불필요한 파일이 많아질 수 있습니다.

 

2. 프로젝트 폴더 밖에 설치

프로젝트와 별도로 가상환경을 관리합니다.

python3 -m venv ~/venvs/myproject_env

 

디렉터리 구조 예시:

~/venvs/
    myproject_env/   # 가상환경
myproject/
    manage.py
    myproject/

 

장점: 프로젝트 폴더가 깨끗하게 유지됩니다.

단점: 가상환경 경로를 별도로 기억해야 합니다.


3. 가상환경 생성 및 활성화

 

가상환경 생성

 

터미널에서 다음 명령어를 실행하면 가상환경이 생성됩니다.

python3 -m venv venv

 

venv는 가상환경 이름이며, 원하는 이름으로 변경 가능합니다.


가상환경 시작 (활성화)

 

가상환경을 활성화하려면 다음 명령어를 사용합니다:

source venv/bin/activate

 

활성화되면 프롬프트에 가상환경 이름이 표시됩니다:

(venv) username@MacBook ~%

가상환경 정지 (비활성화)

 

가상환경을 종료하려면 다음 명령어를 실행합니다:

deactivate

 

프롬프트에서 가상환경 이름이 사라지면 비활성화된 상태입니다.


4. 가상환경 활성화 명령어 alias 등록 방법 (.zshrc 상세 내용)

 

매번 가상환경을 활성화할 때 긴 명령어를 입력하는 것이 번거로울 수 있습니다. 이를 간단하게 하기 위해 alias를 설정할 수 있습니다.

 

alias 등록하기

 

1. 터미널 설정 파일 열기

M1 맥미니의 기본 셸은 zsh입니다. .zshrc 파일을 엽니다.

nano ~/.zshrc

 

2. alias 추가하기

파일 맨 아래에 다음 내용을 추가합니다:

alias venv-start="source /프로젝트경로/venv/bin/activate" # 프로젝트안에 가상환경이 있을 경우
alias venv-stop="deactivate"

 

3. 설정 파일 적용

변경 사항을 반영하기 위해 다음 명령어를 실행합니다:

source ~/.zshrc

 

alias 사용하기

 

가상환경 시작:

venv-start

 

가상환경 정지:

venv-stop

마무리

 

M1 맥미니에서 Python 가상환경을 설정하고 관리하는 방법을 알아보았습니다. 가상환경을 적절히 사용하면 개발 환경을 깔끔하게 유지하고 프로젝트별로 패키지를 독립적으로 관리할 수 있습니다. 특히 alias를 설정해두면 훨씬 효율적으로 가상환경을 사용할 수 있으니 꼭 활용해보세요.

반응형