파이톨치

[BoostCamp AI Tech] Python 개발 환경 설정 본문

카테고리 없음

[BoostCamp AI Tech] Python 개발 환경 설정

파이톨치 2024. 9. 13. 11:44
728x90

파이썬 환경 설정과 디버깅

1. 파이썬 환경 설정

1.1 파이썬의 버저닝

파이썬을 설치할 때, 다양한 버전 중 적합한 버전을 선택하는 것이 중요합니다.

파이썬 공식 홈페이지에는 여러 버전이 제공되는데, 각 버전 번호는 중요한 의미를 가지고 있습니다. 예를 들어, 3.8, 3.9, 3.10 등 버전 번호는 파이썬의 기능 추가, 성능 개선, 그리고 보안 업데이트 등을 나타냅니다.

사용하려는 라이브러리가 특정 파이썬 버전과 호환되는지 확인하는 것이 매우 중요하며, 이 정보는 PyPI(Python Package Index)에서 라이브러리를 검색하여 확인할 수 있습니다.

 

파이썬을 설치하는 방법에는 여러 가지가 있습니다:

  1. 파이썬 공식 홈페이지에서 설치 파일을 다운로드하여 설치
  2. conda를 사용해 설치
  3. Docker를 이용해 파이썬 이미지를 설치
  4. 패키지 관리자(brew, apt, winget)를 사용해 설치
  5. pyenv를 통해 설치

1.2 파이썬 3.11 설치하기

최신 파이썬 버전 중 하나인 3.11을 설치하는 방법은 위에 언급된 다양한 방법을 통해 가능합니다. 가장 많이 사용되는 방법 중 하나는 pyenv를 사용하는 것입니다. pyenv는 다양한 파이썬 버전을 설치하고 쉽게 전환할 수 있도록 도와주는 도구입니다.

 

MacOS:

brew install pyenv
pyenv install 3.11.0

 

 

그 외 방법. 

 

2. 가상 환경 설정

가상환경은 파이썬 개발에서 중요한 개념으로, 각 프로젝트가 독립적인 개발 환경을 가지도록 도와줍니다.

가상환경을 사용하지 않는 경우, 여러 프로젝트에서 동일한 패키지를 사용하게 되어 버전 충돌이나 호환성 문제를 일으킬 수 있습니다.

예를 들어, 프로젝트 A에서 사용한 패키지 버전이 다른 프로젝트에서 요구하는 버전과 달라 코드가 실행되지 않는 문제가 발생할 수 있습니다.

 

이러한 문제를 해결하기 위해 가상환경을 사용합니다.

가상환경을 생성하면 각 프로젝트가 독립된 환경을 가지게 되어, 서로 다른 파이썬 버전과 패키지 버전을 프로젝트별로 사용할 수 있습니다.

이로 인해 프로젝트 간의 의존성 충돌을 방지하고, 더 안정적인 개발 환경을 구축할 수 있습니다.

가상환경은 두 가지 주요 측면에서 프로젝트를 분리할 수 있습니다:

  1. 파이썬 버전: 각 프로젝트별로 서로 다른 파이썬 버전을 사용할 수 있습니다.
  2. 설치한 패키지 목록: 프로젝트별로 필요한 패키지와 해당 버전을 독립적으로 설치하고 관리할 수 있습니다.

가상환경을 생성하는 방법에는 여러 가지가 있습니다:

  • venv: 파이썬 표준 라이브러리의 모듈로, 가상환경을 간편하게 생성하고 관리할 수 있습니다.
  • conda: 패키지 관리와 가상환경 관리 기능을 제공하는 도구로, 다양한 파이썬 버전과 패키지를 효율적으로 관리할 수 있습니다.
  • pyenv-virtualenv: pyenv와 결합하여 다양한 파이썬 버전을 관리하고, 각 버전에 대해 가상환경을 생성할 수 있는 도구입니다.
  • pipenv: 패키지와 가상환경을 동시에 관리할 수 있는 도구로, 프로젝트의 의존성을 쉽게 관리할 수 있습니다.

이러한 가상환경 도구를 활용하면 각 프로젝트의 요구 사항에 맞춰 환경을 설정하고, 안정적인 개발을 할 수 있습니다.

 

1. venv

# 가상환경 생성
python3 -m venv myenv

# 가상환경 활성화 (Linux/MacOS)
source myenv/bin/activate

# 가상환경 활성화 (Windows)
myenv\Scripts\activate

2. conda

# conda 설치가 되어 있어야 함
# 가상환경 생성
conda create --name myenv python=3.9

# 가상환경 활성화
conda activate myenv

3. pyenv

# pyenv 설치 (Linux/MacOS)
curl https://pyenv.run | bash

# pyenv-virtualenv 설치
pyenv install 3.9.12
pyenv virtualenv 3.9.12 myenv

4. pipenv

# 프로젝트 디렉토리에서
pipenv install --python 3.9

# 가상환경 활성화
pipenv shell

3. 디버깅

버그가 발생하는 이유는 여러 가지가 있습니다. 첫째, 사람의 실수가 주요 원인 중 하나입니다. 개발자가 문법을 잘못 작성하거나 로직을 틀리게 작성할 때 버그가 발생할 수 있습니다. 둘째, 실행 환경도 버그의 원인이 될 수 있습니다. 운영 체제, 가상 환경, Docker 컨테이너, 하드웨어, 네트워크 상태 등 다양한 요소가 영향을 미칠 수 있습니다. 셋째, 의존성 문제도 중요한 원인입니다. 사용 중인 라이브러리의 의존 라이브러리에서 버그가 발생하면 문제가 발생할 수 있습니다. 넷째, 복잡성이 커지면 소프트웨어의 버그 가능성도 높아집니다. 소프트웨어가 복잡할수록 버그를 찾고 수정하기 어려워집니다. 마지막으로, 커뮤니케이션 과정의 실수도 문제가 될 수 있습니다. 요구 사항이 명확하지 않거나 팀원 간의 이해가 다를 때 문제가 발생할 수 있습니다.

 

디버깅이 필요한 상황은 다음과 같습니다. 예를 들어, PyTorch를 다운로드하고 공식 문서의 튜토리얼 코드를 실행했을 때 오류가 발생하거나, Docker 이미지를 생성하고 컨테이너를 만들었을 때 예상과 다르게 동작할 때 디버깅이 필요합니다. 또한, 머신러닝 모델의 예측 속도가 갑자기 느려졌거나 특정 패키지를 설치하는데 실패할 때도 디버깅이 필요합니다. 이러한 문제들은 바라는 상황과 실제 발생한 상황의 차이에서 발생합니다.

 

문제를 해결하기 위해서는 무엇이 문제인지 아는 것이 중요합니다. 이를 위해 실행 환경(운영 체제, 가상 환경 여부, 사용하는 라이브러리 버전)을 확인하고, 문제를 재현할 수 있는 상태로 준비하는 것이 필요합니다. 오류 메시지를 읽는 것도 중요합니다. 오류 메시지에는 많은 정보가 포함되어 있으며, 이를 간과하지 말고 꼼꼼히 읽어야 합니다. 구글 번역기 등을 활용하여 오류 메시지를 번역하고 문제를 이해하는 것도 좋은 방법입니다.

 

과거에 유사한 문제를 경험한 적이 있는지 확인하는 것도 중요합니다. 만약 경험이 있다면 기록된 오답 노트를 확인하고, 경험이 없다면 구글에 검색을 시작합니다. 검색할 때는 "<오픈소스이름> + 오류 메시지" 형식으로 검색하는 것이 좋습니다. 문법적으로 정확하지 않아도 괜찮습니다. 예를 들어, "when install pytorch, <error 메시지> raise. how to solve?"과 같이 검색할 수 있습니다.

 

검색해도 문제가 해결되지 않는 경우에는 검색어가 적절한지, 문제가 아직 많은 사람들에게 발생하지 않는 오류인지 확인해야 합니다. 최신 버전이나 작은 오픈소스에서 발생할 수 있는 오류일 수 있습니다. 만약 오픈소스의 이슈라면, 코드를 직접 확인하여 문제를 해결하는 방법도 고려해야 합니다.

 

디버깅 과정은 프로그래밍을 하면서 자주 마주하게 되는 중요한 부분입니다. 오류 메시지를 효과적으로 디버깅하는 방법을 배우고, 나만의 디버깅 방법을 개발하면 학습과 업무에서 많은 도움이 됩니다. 오류를 접할 때는 짜증을 내기보다는, 이러한 문제를 사전에 경험할 수 있다는 점을 긍정적으로 생각하며 접근하는 것이 좋습니다.

 

728x90