파이썬과 R 개발 환경 설정하기
1 파이썬 설치하기
파이썬은 아주 인기있는 프로그래밍 언어로, 웹 사이트는 물론 게임, 과학용 소프트웨어, 그래픽 소프트웨어 등 다양한 것을 만들 수 있습니다. 파이썬은 1980 년대 후반에 귀도 반 로썸 프로그래밍 언어를 기계 뿐만 아니라 인간도 읽을 수 있도록 만들고자 탄생한 언어입니다. 파이썬이 다른 프로그래밍 언어보다 훨씬 간단하게 보이고, 배우기도 쉬운 이유도 그 때문이죠. 이를 바탕으로 과거 15 년 동안 numpy,scipy,matplotlib,jupyter 같이 널리 사용되는 패키지가 개발되어있습니다. 파이썬은 사용중인 OS 의 종류에 따라서 설치방법이 다릅니다.
- 사용 중인 컴퓨터 윈도우 운영체제가 32 비트인지 64 비트인지 확인하세요.
- 공식 웹사이트 에서 다운로드 할 수 있습니다.
- 64 비트 버전의 Windows 인 경우 Windows x86-64 executable installer 를 다운로드하세요.
- 32 비트 버전은 Windows x86 executable installer 을 다운로드하세요.
- 설치 프로그램을 다운로드 한 후에 실행 (더블 클릭) 하고 지시 사항을 따르세요.
공식 사이트 로 가서 파이썬 설치 파일을 다운 받으세요.
리눅스에는 이미 파이썬이 설치되어 있습니다. 터미널에 다음 명령어를 입력하면 설치된 버전을 확인 할 수 있습니다.
$ python3 --version
2 파이썬 가상환경과 패키지 매니저
파이썬 생태계의 패키지들은 서로 복잡한 의존성을 가지고 있어 많은 문제가 발생합니다. 따라서 항상 패키지 매니저를 사용하는 것을 권장합니다.
2.1 pip + virtualenv
pip와 virtualenv는 파이썬 개발 환경에서 가장 오래 사용되었고 또한 자주 사용되는 도구입니다. pip는 파이썬에 기본적으로 포함되어 있는 패키지 관리자로 PyPI(Python Package Index) 에 등록된 패키지를 설치하고 관리할 수 있습니다. virtualenv 는 가상 환경을 생성하여 프로젝트마다 독립된 파이썬 환경을 가질 수 있게 해주는 패키지입니다. 다른 프로젝트와 충돌 없이 패키지를 관리하려면 필수적으로 사용해야 합니다.
pip
는 아래와 같은 몇 가지 근본적인 문제를 가지고 있습니다.
- 의존성 충돌 (Dependency Conflicts) 여러 패키지를 설치할 때 각 패키지가 서로 다른 버전의 동일한 종속성을 요구할 경우 의존성 충돌이 발생하며 프로젝트에서 예기치 않은 동작이나 오류를 발생시킬 수 있습니다.
- 글로벌 설치 문제 기본적으로
pip
는 전역 파이썬 환경에 패키지를 설치합니다. 이로 인해, 여러 프로젝트에서 동일한 패키지 버전을 공유하게 되어 프로젝트 간에 종속성 충돌이 발생할 수 있습니다. 특히, 프로젝트마다 요구되는 패키지 버전이 다른 경우에 문제가 됩니다. - 환경 관리의 어려움
pip
는 파이썬 환경을 별도로 관리하지 않으므로 전역 환경에 설치된 패키지들이 서로 영향을 미칠 수 있습니다. 이로 인해, 동일한 시스템에서 여러 프로젝트를 작업할 때 각 프로젝트의 요구 사항을 일관되게 유지하기 어려워집니다. 이를 해결하기 위해virtualenv
와 같은 도구를 사용해 가상 환경을 생성해야 합니다. - 보안 문제
pip
는 기본적으로 모든 패키지를 신뢰합니다. 악의적인 사용자가 배포한 패키지가 PyPI 에 업로드되면, 이를 설치하는 과정에서 보안 문제가 발생할 수 있습니다. - 복잡한 패키지 관리 복잡한 프로젝트에서는 수많은 패키지와 버전들을 관리해야 하는데,
pip
는 기본적으로 이러한 복잡한 종속성 트리를 관리하는 데 최적화되어 있지 않습니다. 이는 특정 패키지 설치 시 종속성 문제가 발생할 때 수동으로 해결해야 하는 번거로움으로 이어질 수 있습니다. 이러한 문제들로 인해, 많은 개발자들이pipenv
또는poetry
같은 도구들을 사용하여 환경과 패키지 관리를 하고 있습니다.
pip
는 파이썬에 기본적으로 설치되어 있어 상관이 없지만, virtualenv
는 pip
를 사용해 설치할 수 있습니다. 다음 단계를 따라 설치하면 됩니다. 먼저 터미널 (또는 명령 프롬프트) 을 열고 다음 명령어를 입력합니다. 이 명령어는 최신 버전의 virtualenv
를 설치합니다.
pip install virtualenv
virtualenv
가 올바르게 설치되었는지 확인하려면, 다음 명령어를 입력하여 버전을 확인할 수 있습니다.
virtualenv --version
버전 번호가 출력되면 virtualenv
가 성공적으로 설치된 것입니다.
2.1.1 가상환경
기본적으로 pip
는 전역 (global) 파이썬 환경에 패키지를 설치하기 때문에 필연적으로 의존성 문제가 발생합니다. 그러나 virtualenv
를 사용하면 각 프로젝트마다 별도의 가상 환경을 만들어 서로 다른 패키지 버전이나 설정을 유지할 수 있습니다. 이는 프로젝트 간의 종속성 충돌을 방지하고, 개발 환경을 안정적으로 유지하는 데 도움이 됩니다.
2.1.1.1 virtualenv
주요 커맨드
virtualenv 설치:
bash pip install virtualenv
가상 환경 생성:
bash python -m virtualenv 가상환경명
가상환경명
은 원하는 이름으로 지정할 수 있습니다. 이 명령어는가상환경명
이라는 폴더를 생성하고, 그 안에 독립된 파이썬 실행 파일과pip
를 포함한 환경을 구성합니다.가상 환경 활성화:
- Windows:
bash 가상환경명\Scripts\activate
- Mac/Linux:
bash source 가상환경명/bin/activate
가상 환경이 활성화되면, 터미널 프롬프트에(가상환경명)
이 표시됩니다. 이 상태에서pip
로 설치된 패키지는 전역 환경이 아닌 해당 가상 환경에 설치됩니다.
- Windows:
가상 환경 비활성화:
bash deactivate
가상 환경에서 벗어나기 위해 이 명령어를 사용합니다.가상 환경 내 패키지 관리:
- 패키지 설치:
bash pip install 패키지명
활성화된 가상 환경에 패키지를 설치합니다. - 설치된 패키지 목록 저장 (dependencies list):
bash pip freeze > requirements.txt
현재 가상 환경에 설치된 모든 패키지의 목록을requirements.txt
파일로 저장합니다. - 목록에 따른 패키지 설치:
bash pip install -r requirements.txt
requirements.txt
파일에 기록된 패키지들을 한 번에 설치합니다.
- 패키지 설치:
2.1.2 의존성 관리하기
pip
는 다음과 같은 기능을 지원합니다:
- 패키지 설치: 파이썬 패키지를 설치합니다.
- 패키지 업그레이드: 기존에 설치된 패키지를 최신 버전으로 업그레이드합니다.
- 패키지 제거: 더 이상 필요하지 않은 패키지를 삭제합니다.
- 패키지 목록 보기: 현재 설치된 패키지의 목록을 볼 수 있습니다.
2.1.2.1 주요 pip
커맨드
- 패키지 설치:
bash pip install 패키지명
- 패키지 업그레이드:
bash pip install --upgrade 패키지명
- 패키지 제거:
bash pip uninstall 패키지명
- 설치된 패키지 목록 보기:
bash pip list
- 패키지의 특정 버전 설치:
bash pip install 패키지명==버전
가상환경과 라이브러리 관리 팁 1. 프로젝트마다 가상 환경 생성: 프로젝트를 시작할 때마다 새로운 가상 환경을 생성하여, 프로젝트 간에 라이브러리 충돌을 방지하는 것이 좋습니다. 2. requirements.txt 활용: 프로젝트의 의존성을 공유하거나 배포할 때 requirements.txt
파일을 사용하면, 다른 사람이 동일한 환경을 쉽게 설정할 수 있습니다. 3. 가상 환경 폴더 관리: virtualenv
로 생성된 가상 환경 폴더는 일반적으로 프로젝트 폴더 내에 두거나, 중앙 관리 폴더를 만들어 관리할 수 있습니다.
2.2 Conda
conda
는 패키지 매니저로 가상환경을 만들고 파이썬 패키지의 의존성을 관리하고, 설치, 삭제, 업데이트 등을 할 수 있습니다. conda
는 기본적으로 Anaconda 라는 파이썬 기반의 데이터 분석에 특화된 각종 패키지를 모아놓은 플랫폼에서 개발되었습니다. 다시말해 Anaconda
를 설치하면 자동으로 conda
도 설치가 됩니다.
만약 Anaconda
에서 패키지 관리 메니저인 conda
만을 설치 하고 싶다면 miniconda 를 설치 하면 됩니다. 저는 개인적으로 Miniconda
를 사용하는 것을 추천합니다. Anaconda
는 라이센스 문제와 설치 용량이 크다는 단점이 있기 때문입니다.
2.2.1 Conda 사용법
2.2.1.1 가상환경
새로운 프로젝트를 시작할때면 항상 새로운 가상환경을 만들어 작업하는것이 좋습니다. 새로운 가상환경 ENV_NAME
을 만드는 예시를 들어보겠습니다.
- 터미널에 다음과 같이 입력해 새로운 가상환경을 만듭니다.
conda env create -n ENV_NAME
conda env create -n ENV_NAME -f requirements.txt # 의존성 파일로 부터 가상환경을 만들때 사용하는 코드
- 가상환경을 사용하기 위해서는 활성화 (activate) 시켜줘야 합니다. 활성화되면 터미널에
(ENV_NAME)
이 표시됩니다.
conda activate ENV_NAME
- 만약 가상환경을 종료하고 싶다면 비활성화 (deactivate) 하면 됩니다.
conda deactivate
- 이미 생성한 가상환경의 목록은 다음과 같이 확인 할 수 있습니다.
conda env list
- 생성한 가상환경을 제거하는 명령어는 다음과 같습니다.
conda env remove -n ENV_NAME
2.2.1.2 의존성 관리하기
자주 사용하는 conda
명령어는 아래와 같습니다. 예시로 numpy
를 설치하는 상황을 가정합니다.
기능 | 명령어 |
---|---|
패키지 설치 | conda install numpy |
동시에 여러 패키지를 설치 | conda install numpy scipy pandas |
특정 버전 설치 | conda install “numpy=1.10” |
패키지 제거 | conda remove numpy |
패키지 업데이트 | conda update numpy |
모든 패키지 업데이트 | conda update –all |
설치된 목록 출력 | conda list |
설치하려는 패키지 검색 | conda search numpy |
만약 Conda 에서 패키지를 찾을 수 없다면 pip
을 사용해보세요
2.2.2 Conda 제거하기
만약 conda
를 제거하고 싶다면 다음과 같이 하면 됩니다.
제어판에 들어가서 Python(Anaconda) 혹은 Python(Miniconda) 를 제거합니다.
단순하게 아래 디렉토리만 삭제하면 됩니다.
rm -rf ~/miniconda
rm -rf ~/anaconda
3 R 설치하기
R
은 주로 데이터 분석, 통계 모델링, 시각화 작업에 사용되며 다양한 통계 기법을 제공합니다. R
은 연구자, 통계학자, 데이터 과학자들 사이에 널리 사용되며 데이터를 탐색하고 모델링하며 결과를 시각적으로 표현하는 데 매우 유용합니다. R
문법과 통계처리 부분은 AT&T
벨 연구소가 개발했던 S
를 참고해 만들어졌습니다.
- CRAN 웹사이트 방문:
R
의 공식 배포 사이트인 CRAN(Comprehensive R Archive Network) 에서 설치 파일을 다운로드할 수 있습니다. CRAN 웹사이트를 방문합니다.
- R 다운로드:
- CRAN 홈페이지에서
Download R for Windows
링크를 클릭합니다. - 이후
base
링크를 선택하여R
의 기본 설치 파일을 다운로드합니다.
- CRAN 홈페이지에서
- 설치 파일 실행:
- 다운로드한
.exe
파일을 실행합니다. - 설치 마법사가 시작되며 기본 설정을 따라 설치를 진행합니다. 특별히 변경할 사항이 없으면 기본값을 그대로 사용해도 됩니다.
- 다운로드한
- R 실행:
- 설치가 완료되면, Windows 의 시작 메뉴에서
R
을 실행할 수 있습니다. 기본적인 콘솔이 실행됩니다.
- 설치가 완료되면, Windows 의 시작 메뉴에서
- CRAN 웹사이트 방문:
- macOS 사용자도 CRAN 웹사이트에서
R
설치 파일을 다운로드합니다.
- macOS 사용자도 CRAN 웹사이트에서
- R 다운로드:
Download R for macOS
링크를 클릭합니다.- 이후 적절한
R
버전의.pkg
파일을 다운로드합니다.
- 설치 파일 실행:
- 다운로드한
.pkg
파일을 실행하여 설치를 진행합니다. - 설치 과정에서 여러 단계를 거치며 기본값으로 진행하면 됩니다.
- 다운로드한
- R 실행:
- 설치가 완료되면 응용 프로그램 폴더에서
R
을 실행할 수 있습니다.
- 설치가 완료되면 응용 프로그램 폴더에서
Linux
에서는 보통 패키지 관리자를 통해 R
을 설치합니다. 여기서는 우분투 (Ubuntu) 를 예로 들어 설명하겠습니다.
- 리포지토리 업데이트:
터미널을 열고 시스템 패키지 목록을 업데이트합니다.
sudo apt update
- R 설치:
기본 패키지 관리자를 사용하여
R
을 설치합니다.sudo apt install r-base
- R 실행:
설치가 완료되면, 터미널에서
R
명령어를 입력하여 콘솔을 실행할 수 있습니다.R
3.1 RStudio 설치
R
의 기본 콘솔 외에 통합 개발 환경 (IDE) 를 사용하고 싶다면 RStudio
를 설치할 수 있습니다. 다만 개인용도로만 무료임으로 라이센스를 항상 확인하세요.
- RStudio 다운로드:
- RStudio 공식 웹사이트 에서 운영 체제에 맞는 설치 파일을 다운로드합니다.
- RStudio 설치:
- 다운로드한 파일을 실행하여 설치를 진행합니다. 설치 과정은 간단하며, 기본값으로 진행하면 됩니다.
- RStudio 실행:
- 설치가 완료되면, RStudio 를 실행하여 R 환경을 더욱 효율적으로 사용할 수 있습니다.
4 R 가상환경과 패키지 관리 매니저
R
또한 다양한 패키지를 사용하여 분석 작업을 수행합니다. 따라서 패키지 관리와 가상환경 설정을 통해 서로 다른 프로젝트 간의 의존성 충돌을 방지하고 일관된 환경을 유지하는 것이 중요합니다.
4.1 가상환경
4.1.1 renv
renv
는 R
의 가상환경 관리 도구로, Python
의 virtualenv
나 conda
와 유사한 역할을 합니다. renv
는 각 프로젝트마다 독립된 라이브러리 환경을 설정하여, 서로 다른 프로젝트에서 사용하는 패키지가 충돌하지 않도록 도와줍니다.
renv
의 주요 기능
- 프로젝트별로 패키지 라이브러리 폴더를 생성하여, 각 프로젝트마다 고유한 환경을 유지.
renv.lock
파일을 사용하여 프로젝트에 필요한 패키지 버전과 의존성을 기록.renv
를 사용하면 특정 시점의 패키지 상태를 다른 시스템에서 동일하게 재현 가능.
renv
설치:install.packages("renv")
프로젝트 초기화: 프로젝트 디렉토리에서
renv
를 초기화합니다. 이는 새로운 가상환경을 생성하고,renv.lock
파일을 생성합니다.::init() renv
패키지 설치: 일반적인 방법으로 패키지를 설치하면 해당 패키지는 현재
renv
환경에 설치됩니다.install.packages("ggplot2")
환경 스냅샷 생성: 프로젝트의 현재 상태를 기록하여
renv.lock
파일에 저장합니다.::snapshot() renv
환경 복원: 다른 시스템에서 동일한 환경을 재현하기 위해,
renv.lock
파일을 사용하여 패키지 환경을 복원합니다.::restore() renv
가상환경 해제: 프로젝트의 가상환경을 해제하고 전역 라이브러리를 사용하도록 변경합니다.
::deactivate() renv
4.2 의존성 관리하기
4.2.1 CRAN
대부분의 R
패키지는 CRAN(Comprehensive R Archive Network) 을 통해 설치 및 관리됩니다. CRAN
은 R
패키지의 공식 저장소로 일반적인 분석 작업에 필요한 대부분의 패키지를 제공합니다.
4.2.1.1 주요 CRAN 커맨드
install.packages()
: 기본적으로 CRAN 에서 패키지를 설치하는 함수입니다.library()
: 패키지를 로드하는 함수입니다. 한 번 설치된 패키지는 프로젝트에서 사용할 때마다library(패키지명)
을 통해 불러올 수 있습니다.update.packages()
: 설치된 모든 패키지를 최신 버전으로 업데이트하는 함수입니다.remove.packages()
: 설치된 패키지를 제거하는 함수입니다.
4.2.2 Bioconductor
: 생물정보학용 패키지 매니저
생물정보학 연구에서 자주 사용되는 R
패키지는 Bioconductor
를 통해 관리됩니다. Bioconductor
는 CRAN
을 통해 설치해 사용할 수 있습니다. 주요 명령어는 아래와 같습니다.
BiocManager 설치:
install.packages("BiocManager")
Bioconductor 패키지 설치:
::install("패키지명") BiocManager
Bioconductor 패키지 제거
특정 Bioconductor
패키지를 제거하려면 remove.packages()
함수를 사용합니다:
remove.packages("패키지명")
- 특정
Bioconductor
버전을 사용하고 싶다면 (예: 3.13):
::install(version = "3.13") BiocManager
- Bioconductor 패키지 검색
Bioconductor 에서 특정 패키지를 검색하려면:
::available("패키지명") BiocManager
이러한 명령어들을 활용하면 Bioconductor
패키지를 효과적으로 관리하고, 필요한 생물정보학 도구들을 손쉽게 사용할 수 있습니다.