Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

codebasic/pyml-environment

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

기계학습 환경 구성

Codebasic (c) 2015-2025

이 문서는 플랫폼별 기계학습 환경 설치 방법을 안내합니다. 아래 절차는 플랫폼 전반에 대체로 공통이며, 오픈소스 라이선스 소프트웨어만을 활용합니다.

플랫폼

  1. 윈도우(Windows)
  2. 유닉스 계열(Unix-like)
    1. 맥(macOS)
    2. 리눅스(Linux)

각 플랫폼별 환경 설정 섹션을 참조하여 설치를 진행할 수 있습니다.

콘다(Conda)

미니콘다(Miniconda)를 각 플랫폼별 안내에 따라 설치합니다.

미니콘다(Miniconda) 설치

콘다는 크로스 플랫폼(cross-platform) 범용 바이너리 패키지 관리자입니다.

미니포지(Miniforge), 아나콘다 배포판(Anaconda Distribution)과 같은 콘다 배포판에서 사용되며, 다양한 시스템에서도 활용 가능합니다.

주로 파이썬(Python) 기반 소프트웨어와 라이브러리 설치 및 환경 관리에 활용되지만, 다른 언어의 패키지와 도구도 관리할 수 있습니다.

콘다 명령줄 인터페이스(CLI)는 전적으로 파이썬(Python)으로 작성되었으며, BSD 라이선스의 오픈소스로 공개되어 있습니다. Conda GitHub 저장소

쉘 설정

콘다는 설치 후, 사용할 쉘에서 설정이 필요합니다.

conda init

동작:

  • 쉘 설정 파일(.bashrc, .zshrc 등)에 콘다 초기화 코드 추가
  • 이후 터미널 재시작 시 자동으로 콘다 활성화

윈도우 파워셸(Windows PowerShell)

윈도우에서는 스크립트 실행 권한 설정이 필요할 수 있습니다.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

해석:

  • RemoteSigned: 로컬 스크립트는 자유, 원격 스크립트는 서명 필요
  • CurrentUser: 현재 사용자만 적용 (시스템 전역 영향 안 함)

설정 확인

모든 플랫폼에서 쉘을 재시작한 후 다음 명령으로 설정 확인:

conda --version

성공적으로 설정되면 버전 정보가 출력됩니다.

출력 예시:

conda 24.1.2

아래는 대표적인 콘다 배포판(아나콘다, 미니콘다)의 개요입니다.

아나콘다(Anaconda)

  • Anaconda, Inc.에서 배포하는 패키지 배포판
  • 파이썬, 콘다, 주요 과학계산/데이터분석 패키지(NumPy, pandas, scikit-learn 등) 기본 포함
  • 장점: 설치 직후 바로 사용 가능, 신뢰성 높은 바이너리
  • 단점:
    • 용량 3GB 이상 (전체 설치 시)
    • 기본 채널(defaults)은 상업적 사용 시 라이선스 제약 존재 (2023년부터 강화)
    • 추가 패키지 설치 시 의존성 충돌 가능성

미니콘다(Miniconda)

  • 최소 설치판: 파이썬 + 콘다만 포함
  • 장점:
    • 용량 ~150MB로 경량
    • 필요한 패키지만 설치하여 간결함
    • 환경 오염 최소화
  • 단점:
    • 초기 세팅에 시간 소요
    • 각 라이브러리를 직접 설치해야 함
  • 권장: 깨끗한 환경 선호 개발자, 온라인 저장소 용량 제약 있는 환경

이 가이드의 선택: 미니콘다 + conda-forge 조합으로 가벼우면서도 라이선스 자유로운 환경 구축

콘다 채널 라이선스 비교(Conda channels)

기본 채널(defaults, Anaconda)

  • Anaconda, Inc.가 관리하는 기본 채널
  • 바이너리 배포본은 Anaconda 약관(Terms of Service) 적용
  • 상업적 사용(기업 환경) 시 별도 계약이 필요할 수 있음
  • 라이선스 정책 변화: 2023년 10월부터 상업 사용자는 유료화

언제 사용하나?

  • 개인 사용, 학습용
  • Anaconda에서 명시적 라이선스 구입

콘다-포지(conda-forge)

  • 전 세계 커뮤니티가 관리하는 채널
  • 패키지 본래의 오픈소스 라이선스 그대로 배포
  • 더 최신 버전의 패키지 제공 (빠른 업데이트)

언제 사용하나?

  • 상업적 사용 (추가 비용 없음)
  • 최신 패키지 버전 필요할 때
  • 라이선스 명확성이 중요한 환경

이 가이드의 선택: 모든 절차에서 conda-forge 채널 사용 (오픈소스 라이선스 준수, 상업적 자유도)

소프트웨어 설치

상업적 사용 라이선스를 가정하지 않기 위해 아래 절차에서는 콘다-포지(conda-forge) 채널을 활용합니다.

설치 전 선택 사항

기계학습 개발 환경 구축 방법은 두 가지입니다:

  1. 로컬 설치 (권장): Conda를 사용한 로컬 환경 설정

    • 장점: 세밀한 제어, 즉시 개발 시작, 리소스 효율적
    • 단점: 플랫폼별 호환성 이슈 가능, 의존성 관리 필요
    • 대상: 리눅스/macOS 사용자, 빠른 프로토타이핑
  2. 도커 사용: 컨테이너 기반 격리된 환경

    • 장점: 환경 일관성, 플랫폼 무관, 버전 충돌 없음
    • 단점: 초기 학습곡선, 약간의 성능 오버헤드
    • 대상: 윈도우 사용자, 복수 환경 관리, 본격 배포

파이썬 환경 생성

conda create --name pyml python=3.10 --channel conda-forge

주요 옵션:

  • --name pyml: 새로운 환경의 이름을 "pyml"로 지정 (프로젝트명과 동일하게 유지)
  • python=3.10: Python 3.10 버전 사용 (2024년 기준 장기 지원 버전)
  • --channel conda-forge: 오픈소스 커뮤니티 채널에서 패키지 설치

왜 이 구성인가?

  • Python 3.10은 안정적이고 주요 라이브러리들이 잘 지원됨
  • conda-forge는 라이선스 제약이 없어 상업적 사용에 적합
  • 환경 이름을 프로젝트명으로 사용하면 여러 프로젝트 간 의존성 충돌 방지

생성된 환경 활성화:

conda activate pyml

확인 방법:

  • 터미널 프롬프트에 (pyml) 표시 확인
  • python --version 실행하여 3.10 버전 확인

기계학습 라이브러리 구축

환경이 생성된 이후, 다음을 실행하여 소프트웨어 설치를 진행합니다.

bash/zsh 쉘:

conda install -y \
  -c conda-forge \
  --override-channels \
  "libblas=*=*openblas" \
  "libcblas=*=*openblas" \
  "liblapack=*=*openblas" \
  libopenblas \
  llvm-openmp \
  numpy scipy scikit-learn pandas matplotlib \
  ipykernel

Windows PowerShell:

conda install -y `
  -c conda-forge `
  --override-channels `
  "libblas=*=*openblas" `
  "libcblas=*=*openblas" `
  "liblapack=*=*openblas" `
  libopenblas `
  llvm-openmp `
  numpy scipy scikit-learn `
  pandas matplotlib `
  ipykernel

명령어 해설

이 명령어는 다음과 같은 구성 요소로 이루어져 있습니다:

  • -y: 설치 중 모든 확인에 자동으로 "yes"로 응답하여 대화형 개입 없이 진행

  • -c conda-forge: conda-forge 채널에서 패키지 검색 (오픈소스 라이선스 우선)

  • --override-channels: 기본 채널을 무시하고 conda-forge만 사용하도록 강제

  • 선형대수 라이브러리 (OpenBLAS):

    • libblas, libcblas, liblapack, libopenblas: 행렬 연산 고성능화
    • OpenBLAS는 BLAS(Basic Linear Algebra Subprograms)의 오픈소스 구현
    • NumPy, SciPy의 연산 속도를 대폭 개선
  • llvm-openmp: 다중 스레드 병렬 처리를 위한 라이브러리

  • 과학계산 패키지:

    • numpy: 수치계산 기초 라이브러리
    • scipy: 과학계산 함수 (선형대수, 최적화, 통계)
    • scikit-learn: 기계학습 알고리즘
    • pandas: 데이터 분석 라이브러리
    • matplotlib: 데이터 시각화
    • ipykernel: Jupyter 노트북 커널

설치 검증

설치 완료 후 다음 명령으로 확인할 수 있습니다:

conda run --name pyml python -c "import numpy, scipy, sklearn, pandas, matplotlib; print('모든 패키지 설치 완료')"

[선택적] 주피터 랩(Jupyter Lab)

주피터 랩(Jupyter Lab)은 웹 기반의 대화형 노트북 환경으로, 파이썬(Python) 코드 작성, 실행, 시각화를 한 곳에서 할 수 있습니다. 기계학습 실습에서 데이터 분석과 모델 개발에 주로 사용됩니다.

1단계: 커널 등록

conda run --name pyml python -m ipykernel install --user --name pyml

목적: Jupyter에서 pyml 환경을 선택할 수 있도록 커널 등록

  • ipykernel: 각 콘다 환경을 Jupyter 노트북에서 사용 가능하게 하는 커널
  • --user: 현재 사용자만 접근 가능한 커널로 설치 (시스템 전역 설정 안 함)
  • --name pyml: 노트북에서 표시될 커널 이름

2단계: 주피터 랩 설치

conda install --name pyml --channel conda-forge jupyterlab

주의: pyml 환경이 활성화된 상태에서 설치하거나 --name pyml 옵션 사용

3단계: 주피터 랩 실행

conda run --name pyml --no-capture-output jupyter-lab

옵션 설명:

  • --no-capture-output: 터미널 출력을 정상 표시 (기본 출력 리다이렉션 비활성화)

실행하면 기본 웹 브라우저가 자동으로 열립니다.

주피터 서버 정보 확인

터미널에서 주피터 서버(Jupyter Server) 주소를 확인하려면 다음 명령을 실행합니다.

conda run --name pyml jupyter server list

출력 예시:

Currently running servers:
http://localhost:8888/?token=82cd0... :: D:\pyml

해석:

  • localhost:8888: 로컬 컴퓨터의 8888 포트에서 실행 중
  • token=82cd0...: 처음 접속 시 필요한 토큰 (자동으로 처리됨)

도커(Docker)

도커를 활용하면 소프트웨어 설치와 설정이 완료된 상태로 바로 시작할 수 있습니다. 환경 설정 문제를 피하고 싶거나 다양한 프로젝트를 격리된 환경에서 관리하고 싶을 때 권장됩니다.

docker run --name pyml -d codebasic/pyml

명령어 해석:

  • docker run: 도커 이미지에서 새로운 컨테이너 생성 및 실행
  • --name pyml: 컨테이너 이름을 "pyml"로 지정
  • -d: 백그라운드 모드(-detach) 실행 (즉시 제어권 반환)
  • codebasic/pyml: 사용할 도커 이미지 (Repository/ImageName)

장점:

  • 사전 구성된 환경으로 설정 시간 단축
  • 호스트 시스템 영향 최소화
  • 여러 버전/환경 동시 운영 용이

주피터 서버(Jupyter Server)

컨테이너에서 주피터 서버(Jupyter Server)가 실행 중인 경우, 호스트 웹 브라우저에서 다음 주소로 접속합니다.

http://localhost:8888

토큰 값이 필요한 경우, 도커 컨테이너 쉘에서 다음 명령으로 토큰 값을 확인합니다.

docker exec pyml jupyter server list

해석:

  • docker exec: 실행 중인 컨테이너에서 명령 실행
  • pyml: 대상 컨테이너 이름
  • jupyter server list: 실행 중인 주피터 서버 목록 조회

컨테이너 내부 URL 호스트 주소로 변환

컨테이너 내부의 URL은 호스트의 localhost로 접속해야 합니다. 다음 명령으로 호스트 주소로 자동 치환할 수 있습니다.

  • 파워쉘(Windows PowerShell)
docker exec pyml jupyter server list | ForEach-Object { $_ -replace 'http://[^:]+', 'http://localhost' }
  • POSIX 쉘 (bash/zsh 등)
docker exec pyml jupyter server list | sed -E 's#http://[^:]+#http://localhost#'

명령어 설명:

  • 정규표현식: http://[^:]+는 "http://"부터 ":"까지의 호스트명 패턴 매칭
  • 컨테이너 내부 IP를 localhost로 치환하여 호스트 브라우저에서 접속 가능

About

기계학습을 위한 파이썬 환경 설정

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.