이번 글은 코드잇 강의를 수강하면서 배운 내용을 주로 하여 정리되어 있습니다. (코드잇 스프린트 데이터 애널리스트 트랙 1기 훈련생)
파이썬 환경
- 환경 : 우리에게 직접적 혹은 간접적으로 영향을 주는 자연적 조건이나 사회적 상황
예) 날씨, 경제적 여유, 문화 - 개발 환경 : 프로그래밍 코드를 작성하거나 실행할 때 영향을 주는 여러가지 요소
예) 운영체제, 텍스트 에디터나 IDE, 특정 언어 버전, (프레임워크, 라이브러리, 패키지) + 버전, 컴퓨터 사양
목차
- 파이썬과 파이썬 패키지 작동 원리
- 파이썬과 파이썬 패키지가 실행에 미치는 영향
- 파이썬 환경을 만들고, 관리하고, 공유하는 방법
파이썬 환경의 개요
개발 환경이란 운영 체제, 텍스트 에디터나 IDE, 특정 언어 버전, 라이브러리와 패키지 버전, 컴퓨터 사양 등을 말합니다.
- 환경 A : Mac 운영체제, PyCharm, Python 3.7.11, Numpy 1.20.1, 16GB RAM
- 환경 B : Windows 운영체제, VS Code, Python 3.8.6, Numpy 1.18.5, 8GB RAM
- 개발자 A : Python 2.7
- 개발자 B : Python 3.8
→ 똑같은 코드도 실행하는 환경에 따라 다른 방식으로 작동하거나 오류가 날 수 있습니다.
→ 한 프로젝트에 협업하는 여러 개발자들이 최대한 비슷한 환경으로 작업하면 좋습니다.
- 수업 A 과제 : Numpy 1.4.1
- 수업 B 과제 : Numpy 1.21.1
→ 협업할 때 뿐만 아니라, 하나의 컴퓨터 안에서도 프로젝트마다 적합한 환경으로 작업하면 편리합니다.
즉, 파이썬 버전 + 파이썬 패키지 = 파이썬 환경 이라고 할 수 있습니다.
Sublime Text
코드를 작성할 수 있는 문서 편집(Text Editor) 프로그램입니다.
터미널에서 ‘subl’ 이라는 커맨드를 사용하면 Sublime Text를 실행할 수 있습니다.
그리고 ‘file.txt’ 라는 파일이 있다면, ‘subl file.txt’ 라는 커맨드를 입력하여 해당 파일을 열 수 있습니다.
Mac에서 파이썬 환경 구축을 위해 Homebrew 설치
Homebrew는 CLI환경에서 편하게 외부 프로그램을 설치하고 관리할 수 있는 프로그램입니다.
Homebrew 설치 방법
- Homebrew 사이트에 있는 커맨드 복사
- 터미널에 붙여넣기
- 비밀번호 입력 (보안 문제로 비밀번호 입력해도 *표시 뜨지 않음)
- 비밀번호 입력 후 엔터
- 설치가 잘 되었는지 확인하기 위해 brew help 커맨드 실행 (여러 가지 설명이 잘 나오면 설치가 잘 된 것이다.)
터미널에서 파이썬 파일을 실행하는 법
터미널에서 Desktop 디렉토리로 이동하여 touch hello.py 커맨드를 사용하여 파일 생성합니다.
subl hello.py로 서브라임 텍스트를 실행하여 파일 내용을 수정한다.
파일 내용을 수정하고 터미널로 돌아가 python3 hello.py를 입력하면 파이썬 코드가 실행된다.
또는 터미널 상에서 다른 디렉토리에 위치하고 있는 경우 python3 /경로/hello.py를 입력해도 코드가 실행된다.
파이썬 인터프리터
- 컴퓨터는 0과 1로 된 언어인 머신 코드만 이해하고 실행할 수 있습니다.
- 어떤 프로그래밍 언어를 사용해도 머신 코드로 바꾸는 단계가 필요한데 파이썬의 경우에 파이썬 인터프리터가 이 역할을 합니다.
즉, 파이썬 인터프리터는 파이썬 코드를 머신 코드로 통역해주는 프로그램입니다.
파이썬 인터프리터의 특징
- 아무 문서 편집 도구에서도 파이썬 코드는 작성할 수 있습니다.
- 파이썬 인터프리터는 모든 코드를 머신 코드로 바꾸고 한번에 모든 코드를 실행하는 것이 아니라 위에서 한줄씩 머신 코드로 바꾸고 한줄씩 실행하는 것을 반복합니다.
- 파이썬 코드는 컴퓨터가 바로 이해할 수 있는 머신 언어로 변환돼야지 실행될 수 있습니다.
- 파이썬 코드를 머신 언어로 바꿔주는 프로그램은 어떤 언어로 작성해도 상관이 없습니다.(변환만 제대로 해준다면)
- 파이썬 코드를 머신 언어로 바꿔주는 프로그램은 일반적으로 C로 작성됩니다.
- 파이썬 언어와 인터프리터는 엄밀히 말하면 서로 다르지만, 파이썬 언어와 인터프리터를 각각 그리고 합쳐서, 크게 파이썬이라고 부릅니다.
파이썬 인터랙티브 모드 (파이썬 셸)
터미널에서 python3를 입력해서 인터랙티브 모드를 실행한다.
인터랙티브 모드는 파이썬을 파일 단위가 아니라 줄 단위로 실행시켜주는 모드입니다.
복잡하거나 코드가 긴 프로그램을 만들 경우네는 인터랙티브 모드를 사용하기에 적합하지 않다.(작은 단위의 코드에 사용하기 적합하다.)
인터랙티브 모드의 사용법 및 특징
- 반복문, 함수 정의, 조건문과 같이 여러 줄에 걸친 코드도 쓸 수 있습니다.
- 인터렉티브 모드를 종료하기 위해서는 quit()함수나 ctrl + d를 누릅니다.
- 인터랙티브 모드에서는 각 줄에 해당하는 코드를 프린트 없이도 출력할 수 있습니다.
- 인터렉티브 모드는 종료할 때마다 초기화됩니다. 특정 변수를 다시 사용하고 싶으면 다시 정의해서 사용해야 합니다.
- 다양한 오류를 일으켜도 파이썬이 종료되지 않으며, 오류 전까지 실행시켰던 모든 코드가 유효합니다.
컴파일러 vs 인터프리터 언어
프로그래밍 언어들은 흔히 두 가지로 분류하는데 이는 컴파일러 언어와 인터프리터 언어입니다. (파이썬 : 인터프리터 언어)
컴파일러 언어들은 코드를 바로 컴퓨터가 이해할 수 있는 머신 코드로 '번역'합니다.
코드 전체를 다른 언어로 바꾸는 걸 컴파일이라고 합니다.
컴파일된 코드가 있다면 이 코드만 사용해서 프로그램을 돌릴 수 있습니다. 가장 대표적인 컴파일러 언어가 C와 C++ 같은 언어입니다.
인터프리터 언어들은 컴퓨터가 바로 이해할 수 있는 실행 코드를 만드는 게 아니라, 중간 매개체, 인터프리터를 사용해서 코드를 '통역'합니다.
정리하자면, 코드를 실행시킬 때, 이미 머신 코드로 컴파일된 파일을 그대로 사용/실행 할 수 있으면 컴파일러 언어이고 실행시키는 와중에 줄 단위로 한 번 더 머신 코드로 바꿔야 하면 인터프리터 언어라고 생각하면 됩니다.
파이썬 버전
파이썬 언어와 인터프리터는 한 종류가 아니라 다양한 종류가 있습니다.
크게 Python1. Python2, Python3 / 세부적으로 Python3.x / 더 세부적으로 Python3.x.x
- 파이썬 버전이 필요한 이유 : 개발자의 필요와 요청에 따라 파이썬이 계속해서 바뀌고 있기 때문입니다.
PEP(Python Enhancement Proposal) : 개발자들이 제안서를 작성해서 올리면 파이썬 개발 핵심 인원들이 받아들일지 말지를 결정한다
- python 3.12.4
- python major.minor.micro
- major : 이전 버전과 호환성이 안맞을정도로 큰 변화가 있는 버전
- minor : 새로운 기능 출시. 새로운 함수나 문법 등이 추가되는 경우 (약 1년에 한번 출시)
→ 그런데 그 반대로 높은 버전에서 작성한 코드가 낮은 버전으로 가면 실행되지 않을 가능성이 높습니다.- micro : 버그 수정 출시. 같은 minor 버전 안에서 실수로 틀렸던 내용을 고쳐서 출시되는 버전. (보통 2달에 한번 출시)
일반적으로 파이썬 버전을 선택할 때 :
가장 최신 minor 버전보다 한 단계 낮은 minor버전과 최신 micro 버전을 사용하는 것이 좋습니다.
새로운 버전을 사용하려면, 새로운 버전의 인터프리터를 다운받아서 사용해야 합니다.
파이썬 버전 별 수정 내용 확인하기
가장 간단한 방법은 구글과 같은 검색 엔진에 검색해보는 것이지만, 파이썬 공식 홈페이지에서 공식적으로 이를 확인할 수 있습니다.
파이썬 공식 웹사이트에는 새로운 기능 (What's New) 라는 페이지가 있는데 이곳에서 파이썬 버전 별로 수정되는 내용들을 확인할 수 있습니다.
다양한 파이썬 버전 설치 및 사용
다양한 파이썬 버전을 설치하기 위해 우선 python3 —version으로 자신에게 설치 되어있는 버전을 확인합니다.
그리고 https://www.python.org/downloads/macos/ 에서 다양한 파이썬 버전 중에 원하는 버전을 설치할 수 있습니다.
그리고 여러 버전이 설치되어있는데, 특정 버전을 호출하고 싶다면 python3.x을 입력하여 특정 버전을 실행할 수 있습니다.(예) python3.7, python3.10)
컴퓨터(터미널)에서 파이썬 인터프리터를 찾는 PATH 다루기
PATH : 컴퓨터가 커맨드에 해당하는 프로그램들을 검색하는 경로들
- 컴퓨터는 PATH라는 변수에 저장된 경로들을 검색해서 파이썬 인터프리터를 찾는다.
- PATH 경로들 중, 같은 이름의 프로그램이 여러 개가 저장돼있으면 가장 앞에 또는 왼쪽에 있는 경로의 프로그램이 사용됩니다.
- 맥 인스톨러로 파이썬을 다운받으면 자동으로 PATH에 새롭게 다운받은 인터프리터가 있는 bin 폴더의 경로가 추가됩니다. (그래서 커맨드로 인터프리터를 찾을 수 있다.)
- PATH 변수를 수정하면 우리가 기본으로 사용하는 파이썬 인터프리터 버전을 바꿀 수 있습니다.
- 맥 인스톨러로 파이썬을 다운받으면 ~/.zprofile (또는 ~/.bash_profile) 에 PATH 변수를 수정하는 코드가 추가됩니다.
터미널에서 PATH 변수를 출력하는 커맨드
echo $PATH
터미널에서 현재 사용하고 있는 python3 인터프리터에 대한 경로를 출력하는 커맨드
which python3
터미널에서 현재 사용하고 있는 python3 인터프리터의 버전을 출력하는 커맨드
python3 --version
기본 파이썬 인터프리터 설정하기
기본 파이썬 인터프리터 설정은 PATH 변수 설정을 통해 가능합니다.
파이썬 버전이 여러 개가 있을 경우 기본 인터프리터 설정은 PATH 변수에서 원하는 인터프리터 버전의 bin 디렉토리를 다른 버전 디렉토리보다 앞에 배치하면 됩니다.
터미널에서 subl ~/.zprofile 을 입력하고 실행시키면 서브라임 텍스트 파일이 하나 열립니다.(커맨드가 작동하지 않는다면, subl ~/.bash_profile를 입력)
이 파일에는 PATH 변수를 수정할 수 있는 내용이 담겨 있습니다.
내용에는 개발 환경에 설치되어있는 파이썬의 버전과 함께 등록되어 있는 PATH들이 포함되어 있습니다.
이 파일의 순서를 변경하면 원하는 인터프리터 버전을 설정할 수 있는데 여러 버전과 PATH가 있을 경우 원하는 버전의 PATH를 제일 밑으로 복사 붙여넣기를 하고 저장하고 python3를 입력하여 실행했을 때, 설정한 인터프리터 버전을 기본으로 python 인터프리터를 실행할 수 있습니다.
파이썬 패키지와 pip
pip : 파이썬 패키지 관리 프로그램 (외부 패키지를 다운받는 프로그램)
pip을 사용한 패키지 설치 및 삭제
- pip이 설치되어 있는지 혹은 버전이 어떻게 되는지 확인
pip3 —version - 최신 버전으로 업그레이드
pip3 install —upgrade pip
pip는 항상 최신 버전으로 업그레이드해서 사용하는 게 권장됩니다. - 패키지 다운로드
pip3 install package명
pip3 install package명==x.y.z (특정 버전을 사용하는 경우) - 다운로드된 패키지를 확인할 때
pip3 list - 패키지 삭제
pip3 uninstall package명
파이썬 minor 버전 중복 설치 문제
파이썬 공식 홈페이지의 맥 인스톨러를 사용해서 이미 설치한 파이썬 minor 버전의 다른 micro 버전을 다운받으면 새로운 minor 버전을 설치할 때와는 다르게 작동합니다. (예) 파이썬3.7.5 버전을 설치하고 다시 3.7.11 버전을 설치하는 경우)
맥 운영 체제에서 파이썬을 다운받을 경우에 각 마이너 버전마다 하나의 인터프리터만 설치할 수 있습니다.
그리고 같은 minor 버전일 경우에 PATH 변수에서 버전 순서가 변하지 않습니다.
같은 minor 버전일 경우에는 이미 PATH에 해당 경로가 들어가있기 때문에 다시 PATH 변수가 추가되지 않습니다.
그렇기 때문에 특정 버전을 기본 파이썬으로 사용하기 위해서는 ~/.zprofile 또는 ~/.bash_profile 파일에서 PATH 변수를 직접 수정해야 합니다.
다행히 같은 minor 버전을 다운받을 경우, site-packages 등 나머지 디렉토리나 파일들은 그대로 사용되기 때문에 사용하던 패키지들은 다시 설치할 필요 없이 그대로 사용할 수 있습니다.
그래서 이러한 혼선을 방지하기 위해 보통 파이썬 마이너 버전은 하나씩만 다운받아서 사용합니다.
파이썬 가상 환경
- 글로벌 환경 : 하나의 컴퓨터 안에서 기본으로 사용하는 파이썬 환경
- 파이썬 환경 : 하나의 파이썬 환경과 여러 패키지들을 묶음. 버전 디렉토리들은 각각 하나의 환경을 뜻한다.
파이썬에서는 글로벌 환경을 설정하고 사용되는 것은 권장되지 않습니다.
이유)
- 여러 프로젝트를 한 환경에서 사용하면 어떤 프로젝트에서 어떤 패키지를 사용하는지 알기 어렵기 때문입니다.
현재 진행하고 있는 프로젝트의 종류가 많을수록, 그리고 다운로드 받은 패키지가 많으면 많을수록 어떤 패키지가 어떤 프로젝트에 사용되었는지 파악하기 힘들기 때문입니다. - 프로젝트마다 버전이 다를 때, 한 환경에서는 같은 패키지에 대해서 한 버전만 있을 수 있기 때문에 프로젝트마다 패키지의 버전을 바꿔줘야 하는 불편함이 있습니다.
→ 이상적인 방법은 프로젝트마다 하나의 분리된 환경을 사용하는 것과 똑같은 프로젝트을 하는 사람들끼리 똑같은 환경을 사용하는 것이 이상적입니다.
파이썬의 가상환경이란?
한 컴퓨터나 시스템에서 공용 또는 기본으로 사용하는 목적의 파이썬 환경이 아니라 프로젝트 단위로 고립시켜서 사용하는 환경
(프로젝트마다 하나의 분리된 환경을 사용해야 한다.)
파이썬에 가상환경을 사용하는 이유
서로 다른 프로젝트에서 서로 다른 버전의 패키지를 필요로 할 때, 가상 환경을 사용하면 프로젝트 간의 의존성 충돌을 방지할 수 있습니다.
프로젝트 A : Django 3.1
프로젝트 B : Django 4.0
가상환경을 사용하면 각 프로젝트는 독립된 환경을 가지므로, 특정 프로젝트에서 패키지를 업데이트하거나 제거해도 다른 프로젝트에 영향을 주지 않습니다.
→ 프로젝트마다 하나의 환경 폴더를 만들고 그 안에 파이썬 인터프리터, pip, site-packages 디렉토리 생성
- 위와 같은 가상환경을 가능하게 해주는 도구 : virtualenv
Virtualenv
- 2020년 설문 조사에서 가장 인기 많은 가상 환경 도구로 선정되었습니다.
- 설치와 기본적인 사용이 간단합니다.
pip3 install virtualenv 로 virtualenv를 설치합니다.
pip3 list 를 통해 virtualenv가 잘 설치되었는지 확인합니다.
가상 환경 만들기
가상 환경을 만들기 위해서는 우선 데스크탑에 프로젝트를 진행할 프로젝트 디렉토리를 만들어야 합니다. (mkdir 디렉토리명)
디렉토리를 만들고 나서 해당 디렉토리로 이동해 이제 가상환경을 만들어줍니다.
가상환경은 virtualenv —python= python3.x(버전) data_science_env(가상환경 이름) 커맨드를 입력하여 만들어 집니다.(다운받지 않는 버전의 인터프리터는 생성할 수 없다.)
가상 환경 사용하기
가상 환경 활성화는 source data_science_env(가상 환경 이름)/bin/activate 커맨드를 통해 가능합니다.
가상 환경 안에서는 글로벌 환경과 달리 pip과 python을 입력할 때 3을 붙여줄 필요가 없습니다. 다시 말해, 가상 환경 안에서는 pip과 python를 그대로 입력하면 됩니다.
그리고 글로벌 환경과 같이 pip list등 여러 커맨드로 패키지 확인이나 여러가지를 똑같이 확인할 수 있습니다.
추가적으로 가상환경 내에서 설치한 패키지는 글로벌환경에 설치되어 있지 않기 때문에 글로벌환경에서 사용한다면 따로 설치할 필요가 있습니다.
가상 환경을 종료하고 나오고 싶을 때는 간단하게 deactivate 커맨드를 입력해주면 됩니다.
가상 환경 공유하기
프로젝트에서 같은 버전의 패키지를 사용하여 똑같은 가상환경을 구축하기 위해 사용하는 패키지 목록을 공유할 필요가 있습니다.
그래서 현재 사용하고 있는 패키지를 저장하는 방법은 pip list로 패키지 목록을 확인하고, requirements.txt 로 저장하기 위해
pip freeze > requirements.txt 커맨드를 사용합니다.
(requirements.txt라는 파일명은 예전부터 패키지 목록 파일명으로 약속처럼 사용하고 있습니다.)
패키지 목록을 공유받을 때는 프로젝트를 위해 만들어 놓은 가상환경이 있다는 가정 하에 가상환경을 activate하고 pip install -r requirements.txt라고 하는 커맨드를 입력하여 목록에 있는 패키지를 모두 다운로드 할 수 있습니다.
가상 환경 커맨드 정리
virtualenv 다운받기 | pip3 install virtualenv | |
virtualenv로 가상환경 만들기 | virtualenv —python= python3.12 data_science_env(가상환경 이름) | |
가상 환경 활성화 시키기 | source data_science_env/bin/activate | |
가상환경에서 pip 사용하기 | 패키지 다운받기 | pip install package명==x.y.z |
패키지 삭제하기 | pip uninstall package명 | |
사용하는 패키지 목록 저장하기 (공유할 때) |
pip list pip freeze > requirements.txt |
|
패키지 목록에 있는 패키지를 모두 다운받기 (공유받을 때) |
cp requirements.txt가 있는 경로 pip install -r requirements.txt |
|
가상환경 비활성화 | deactivate |
이번 글에서는 파이썬 개발 환경 / 파이썬 버전 / 파이썬 인터프리터 / 파이썬 인터랙티브 모드 / 파이썬 인터프리터와 PATH / 파이썬 패키지와 pip / 파이썬 가상 환경이 포함된 내용을 정리했으며, 파이썬에서 데이터 분석을 하거나 프로그래밍을 하는 사람들에게 알아두면 유용한 개념들로 이번 기회를 통해 다른 분들도 정리하면 좋을 것 같습니다.
글 읽어주셔서 감사합니다.
출처 및 참고자료 : 코드잇 사이트 강의 '파이썬 환경 for Mac' https://www.codeit.kr/topics/python-environment-for-mac
'프로그래밍 언어 > Python' 카테고리의 다른 글
[파이썬 개념 정리 11] Pandas의 DataFrame 마스터하기 1️⃣ (DataFrame의 기본) (0) | 2024.07.28 |
---|---|
[파이썬 개념 정리 10] 객체와 클래스 개념 정리 (0) | 2024.07.18 |
[파이썬 개념 정리 8]Seaborn 라이브러리를 이용한 시각화 개념 (2) | 2024.07.05 |
[파이썬 개념 정리 7]통계의 기본과 파이썬을 이용한 데이터 시각화 개념 (2) | 2024.07.05 |
[파이썬 개념 정리 6]Pandas 라이브러리 개념 정리 (0) | 2024.06.29 |
데이터 분석을 공부하고 카페를 열심히 돌아다니는 이야기
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!