250x250
Notice
Recent Posts
Recent Comments
Link
«   2026/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

Python 연습장

Python 가상환경 만들기 본문

코딩

Python 가상환경 만들기

포숑 2022. 8. 9. 23:36
728x90


1. 가상환경이 필요한 이유 : 프로젝트별로 다른 버전의 패키지들이 필요하기 때문.

Python 으로 코딩하다보면 버전이 안 맞는 경우가 생긴다.
이 패키지를 쓰려면 저 패키지의 버전을 낮춰야하고 근데 나는 다른 프로젝트에서 저 패키지의 높은 버전이 필요하고..
그렇게 버전을 올리고 내리고 하다가 환경설정이 다 망가지고 파이썬 다 지우고 새로 설치해야하는 경우가 생긴다. (꽤 많이!)

패키지가 아니라 파이썬 버전이 안 맞는 경우도 있다.
대표적으로 python 3.8까지만 지원하는 Pycaret 이 그렇다.
또 gpu 에 따라 tensorflow 설치 시 Python 환경이 달라지는데 이 때도 필요하다.

또 하나 더. pyinstaller 나 cx_freeze 로 exe 파일 만들 때 필요없는 패키지들까지 같이 묶이게 되는데 필요한 패키지들만
가상환경에 설치해서 exe 로 만들면 용량이 훨씬 줄어든다.

어쨌든 프로젝트를 여러개 하는 사람이라면 가상환경을 이용하는 버릇을 들여야 한다!


2. 가상환경 생성 방법

1) venv 사용 : 내장 python interpreter 를 바탕으로 여러 환경 구성


venv 는 파이썬3 에서 기본으로 가상환경 만들라고 제공하는 패키지다.


[ 가상환경 만들기 ]

방법은 Mac, Win 다 동일하다.
terminal 창에서 아래와 같이 입력해주면 가상환경이 만들어진다.
./venv 는 가상환경 다른 거 새로 만들 때 수정하면 된다.

python3 -m venv --system-site-packages ./(가상환경이름)

python3 -m venv : 가상환경을 만들어라
--system-site-packages : 시스템에 기본으로 깔려있는 package 들과 함께
./(가상환경이름) : 이 폴더 안에.

위치를 지정하려면 터미널에서 cd (directory 주소) 로 들어가서 위 문구를 입력한다.
나는 기본 패키지들 처음부터 깔고 싶어서 python -m venv ./venv 로만 입력했다.


[ 가상환경 활성화 하기 ]

터미널에서 가상환경을 설치한 경로에 cd 로 들어가서 아래와 같이 입력한다.
Default 경로에 가상환경 생성했으면 cd (directory) 는 생략해도 된다.

(mac)

source (가상환경 이름)/bin/activate

(win)

(가상환경이름)\Scripts\activate


그럼 아래와 같이 터미널창의 (base) 가 (가상환경 이름) 으로 변경될 것이다. (Mac)

(base) (가상환경 주소) % source (가상환경 주소)/bin/activate
(가상환경 이름) (base) (가상환경 주소) %

Windows 는 (base) 가 원래 없어서 앞에 (가상환경 이름) 만 붙는다.


[ 가상 환경에서 pip install ]

생성된 가상환경에서 아무것도 설치안하면 이렇게 뜬다.

pip list

Package    Version
---------- -------
pip        19.2.3 
setuptools 41.2.0


만약에 가상환경 생성 시 --system-site-packages 를 포함한다면?
기존 파이썬에 깔렸던거 다 나온다... 너무 많아서 생략.

가상환경을 여러개 만들어서 사용할 거라면 자주 사용하는 패키지들을 메모장에 넣어두고
아래와 같이 입력하면 깔끔하게 기본 패키지들을 설치할 수 있다.

pip install -r requirements.txt


requirements.txt 파일은 터미널/커맨드 창에서 이렇게 생성하고 필요없는걸 지우면 된다.

pip freeze > requirements.txt


난 requirements.txt 에 그냥 요렇게만 반영해뒀다.

pandas
seaborn
matplotlib
numpy
psutil
scipy


[ 가상 환경 종료 방법 ]

(mac) 터미널 창에서 deactivate 를 입력한다.

deactivate

(win) 커맨드창에서 가상환경>Scripts 폴더 내 deactivate.bat 파일을 실행한다.

(가상환경 주소)/Scripts/deactivate.bat



[ 가상 환경 삭제 ]

사실 명령어 말고 그냥 경로로 가서 해당 가상환경 이름 파일 전체 삭제하면 된다.

(mac)

sudo rm -rf 가상환경이름

(window)
이상하게 conda 말고 파이썬 명령어로된 remove는 찾을 수가 없다.
콘다는 요즘 안쓰는 추세라든데...

conda remove -name 가상환경명 --all


2) pipenv / pyenv : python 버전까지 변경이 필요한 경우


사실 인터넷에 찾아보면 pyenv 에 대한 정보가 더 많다. 근데 파이썬에서 pipenv 를 공식적으로 권장한다고 해서
(https://packaging.python.org/en/latest/guides/tool-recommendations/
실제로 22년 이후 포스팅들은 pipenv 에 대한 내용이 더 많다. )
pipenv 로 가상환경 만드는 법을 소개하려고 한다.

[ pipenv 설치 ]

pip install pipenv


[ pyenv 설치 ]

(mac)

brew install pyenv

사용할 파이썬 버전을 설치하기 위해서 pyenv 가 필요하다.
이거로 설치 없이 그냥 pipenv 에서 파이썬 버전별 가상환경을 만들 수는 없다
(근데 이럴 거면 뭐하러 pipenv 를 쓰라는 건지 모르겠다. 어차피 pyenv 설치해야하는데...)

(win)
https://github.com/pyenv-win/pyenv-win


[ 설치할 수 있는 python version 확인 ]

pyenv install --list


[ 원하는 python version 설치 ]

pyenv install 3.7.3

사실 3.7.3 install 을 여러번 설치했는데 에러나서 3.9.1 을 설치해봤더니 된다.. 뭐지..


[ 가상환경 생성 가능한 파이썬 버전 확인 ]

pyenv versions

원하는 python version 이 없으면 위의 pyenv install 로 설치해준다.


[ 가상환경 생성 ]

터미널에서 가상환경 만들 디렉토리에 들어간다.
cd (가상환경 디렉토리)
그 다음 원하는 python 버전을 입력해준다.

pipenv --python 3.x

여기서 만약 에러가 나면 pipenv --rm 을 해주고 그래도 에러가 나면 터미널 실행 경로에 pipfile 을 모두 삭제해주고 다시 해본다.


설치할 때 pipfile 사용해서 package 설치하라고 나오는데 pipfile 은 앞에서 venv 에서 봤던 requirements.txt 와 동일한 기능이다.
requirements.txt 만 있어도 알아서 pipfile 로 변환하여 설치해주긴 한다.

pipenv 환경에서는 공통으로 설치할 패키지는 pipenv install 로 설치하는데,
설치하고나서 pipfile 파일을 확인하면 해당 패키지가 업데이트되어있다.

pipenv install pandas


[ 가상 환경 실행 ]

pipenv shell


python 버전 확인

pipenv run python --version
# 또는
python --version


설치된 패키지 목록 확인

pipenv graph


가상환경 위치 확인

pipenv --venv


가상환경 파이썬 인터프리터 위치 확인

pipenv  --py

이걸 알아야 vscode 에서 interpreter 설정이 가능하다.
난 users 폴더의 .local 파일 안에 있었는데 이 숨김 파일은 맥) cmd + shift + . 으로 볼 수 있다.


기타 명령어 정보

pipenv -h


[ 가상 환경 종료 ]

exit


[ 가상 환경 삭제 ]

pipenv --rm



이건 --user 환경 설치 및 환경 변수 설정 방법인데 windows ver 이기도 하고 귀찮아서 안했다. 참고로만 링크.
https://hoohaha.tistory.com/92


어우 pipenv 를 사용한 가상환경 설정은 좀 복잡하다...
3.8 기준으로 venv 부터 잘 사용해봐야겠다.

728x90

'코딩' 카테고리의 다른 글

torch 설치  (0) 2022.12.29
구글 코랩(colab)을 알아보자  (0) 2022.09.07
Global memery usage 확인 방법 in Python  (0) 2022.08.09
CPU 코어 수 확인 파이썬 코드  (0) 2022.08.09
다시 jupyter 로...  (0) 2022.06.16
Comments