새소식

언어/파이썬(Python)

4. 파이썬(Python) 리눅스와 윈도우에서 가상환경 설정하기

  • -

파이썬에는 정말 다양한 패키지들이 있습니다.

그 중에서 제가 많이 사용해본 패키지는 matplotlib, numpy, pandas, beautifulsoup 등이 있습니다

머신러닝 공부하거나 크롤링때 많이 써봐서 위에 것만 써봤네요

 

파이썬 패키지 폴더 위치

파이썬에서 패키지들을 설치할때 pip를 이용해서 설치합니다.

설치한 패키지들은 lib/site-packages 폴더에 있습니다.

이 폴더의 위치는 다음과 같이 확인할 수 있습니다

1
python -m site --user-site
cs

** 파이썬 3가 설치되어 잇다면 python대신 python3를 사용하시면 됩니다!!!

아래의 다른 코드들도 마찬가지입니다!!

 

커맨드 창을 열고 위의 명령어를 치면 위와 같이 나옵니다

자신 윈도우 계정의 C:\Users\계정명\AppData\Romaing\Python\Python36\site-packages 에 있네요!!!

아마 파이썬2를 사용하신다면 Python36이 아니라 Python2? 일수도 있겠네요

그 위치에 들어가보니까 위와 같이 폴더 몇개가 있네요

근데 생각보다는 뭔가 별로 없는것 같네요

 

버전 관리의 필요성

이렇게 그냥 막 설치하다보면 나중에 큰 프로젝트를 진행할때 버전 문제가 생길 수 있습니다

우선 python2.x 버전과 python3.x 버전을 분리할 필요도 있습니다

컴퓨터에 어떤 라이브러리가 xx 버전으로 설치되어 있습니다

그리고 A.py와 B.py 프로그램이 있을때 A.py는 yy버전의 라이브러리가 필요해서 실행되지 않고

B.py만 실행될 수도 있습니다.

그래서 이 문제를 해결하기 위해 가상환경(Virtual Environment)이 필요합니다

 

가상환경

가상환경은 말 그대로 가상의 환경을 만들어줘서 사용할 수 있게 합니다.

즉, 독립된 환경을 만들어 줍니다.

위와 같이 환경을 나누어서 파이썬의 버전도 다르게 설치할 수 있습니다.

라이브러리도 물론 다른 버전을 각각 설치할 수 있습니다.

이렇게 하면 위에서 말한 문제가 발생하지 않습니다

 

가상환경 만들기

사용할 수 있는 가상환경에도 여러 종류가 있습니다.

1. venv: Python3.3 버전 이후 부터 기본모듈에 포함된 가상환경

2. virtualenv: python2 이후, python3도 사용가능

3. conda: Anaconda 사용시 설치되는 모듈

4. pyenv: Python Version Manager

 

저희는 이 중에서 기본으로 제공하는 venv를 이용해서 만들어 보겠습니다

기본적으로 다음과 같은 명령어를 이용하여 가상환경을 설정할 수 있습니다.

1
python -m venv [가상환경명]
cs

 

폴더 생성

프로젝트를 진행할 폴더를 하나 만들어 줍시다. cmd 환경에서 진행하겠습니다.

1
> mkdir example
cs

example 폴더를 생성합니다. 리눅스도 위 명령어로 폴더 생성 가능합니다

명령어가 리눅스와 다른 경우 따로 알려드리겠습니다!!

 

1
> cd example
 

만든 example 폴더로 이동합니다

가상환경 생성

1
> python -m venv firstenv
 

위의 명령어를 시행하면 firstenv라는 이름의 가상환경을 만들 수 있습니다.

그러면 firstenv라는 폴더도 만들어 집니다!!

여기서 윈도우와 리눅스에서 이름이 조금 다릅니다

 

-리눅스-

-윈도우-

위와 같이 폴더가 구성되어 있습니다. 리눅스와 윈도우의 다른 점은 bin 폴더Scripts 폴더냐 에요

 

** 인터프리터 버전 다르게하여 가상환경 설정하기

위에서 파이썬의 버전도 다르게 만들 수 있다고 했습니다

만약 python3.6버전으로 가상환경을 만들고 싶다면

1
> python3.7 -m venv firstenv
 

python2로 하고 싶다면 python3.7대신 python2를 쓰시면 됩니다

 

가상환경 실행

윈도우는 Scripts 폴더에서 activate.bat 프로그램을 시행하고

리눅스는 bin 폴더의 activate를 실행합니다.

 

-윈도우-

1
2
> cd firstenv
> Scripts\activate.bat
cs

firstenv 폴더로 이동하여 아래 명령어를 실행하여 activate.bat 파일을 실행하면 가상환경이 실행됩니다

성공적으로 실행되었다면 위와같이 앞에 가상환경의 이름이 괄호안에 나타납니다

 

- 리눅스 -

똑같이 firstenv 폴더로 이동한 다음 아래의 명령어를 수행합니다.

1
$ source ./bin/activate
cs

 

리눅스에서도 똑같이 firstenv로 변경된 것을 볼 수 있습니다

 

파이썬 모듈 설치하기

이제 가상환경 설정이 끝났습니다!!

처음이 어렵지 익숙해지면 쉽습니다

이제 새로운 환경을 설치했기 때문에 아무 모듈도 없습니다

윈도우를 새로 깔았다?? 라고 생각하시면 쉬울 것 같아요

그러니 이제 pip를 이용해 모듈을 설치해줍시다

 

지금 아무것도 설치안한 상태 입니다.

설치한 모듈들은 firstenv/lib/site-packages안에 설치가 됩니다

아래 명령어로 numpy 모듈을 설치해봅시다!!

1
> pip install numpy
cs

그리고 폴더를 다시 보면 numpy가 추가된게 보이시나요???

이렇게 firstenv라는 제가 만든 환경에서 사용할 모듈을 설치했습니다

또 다른 환경의 프로젝트를 진행한다면 위와 같은 방법으로 진행합니다

 

패키지 관리

여기가 중요합니다!!

이렇게 가상환경을 한 번 설정해두면 컴퓨터를 바꾸더라고 다시 편하게 한번에 설치할 수 있어요

예를들어 머신러닝 관련 모듈들을 모두 하나의 가상환경에 설치해두었는데

컴퓨터가 고장나서 포맷되었다면 모두 다시 설치해야겠죠???? 귀찮습니다 ㅠㅠ

이럴때 설치된 패키지들을 모아두었다가 한번에 설치할 수 있습니다

 

설치한 패키지 추출

패키지들을 모아두기 위해서 pip freeze라는 명령어를 이용합니다

1
(firstenv) C:\example\firstenv> pip freeze > requirements.txt
cs

위와 같은 명령어를 통해 모듈들을 뽑아서 requirements.txt라는 파일에 쓰는 것입니다

깃에 등록할때도 용량이 큰 패키지 파일들을 모두 커밋할 필요 없이

텍스트 파일만 등록하면 됩니다!!

얼려두고 나중에 꺼내서 쓴다??는 그런 느낌같네요

 

위에서 numpy를 설치했기 때문에 requirements.txt 파일을 열어보면

설치한 numpy 패키지가 등록되어있는걸 볼 수 있습니다!!

 

패키지 한번에 설치

1
(secondenv) C:\example\secondenv> pip install -r requirements.txt
cs
 
secondenv라는 새로운 가상환경에도 똑같은 환경을 설정해주고 싶다면
위에서 만든 requirements.txt 파일을 옮겨와서 위의 명령어를 실행해주면 됩니다!!
 
 
 

패키지 삭제

1
(secondenv) C:\example\secondenv> pip uninstall -r requirements.txt
cs
 
requirements.txt에 써있는 패키지들을 모두 삭제하고 싶다면 위의 명령어를 이용합니다
 

 

파이썬 가상환경 총 정리

1. 가상환경 생성(python -m venv [가상환경명])  여기서 파이썬 인터프리터 버전 다르게 설정 가능

2. 각종 필요한 모듈 설치(pip install numpy, pip install matplotlib)

3. 프로젝트 수행!!

4. 패키지 관리(pip freeze > requirements.txt)

5. 패지지 한 번에 설치(pip install -r requirements.txt)

6. 패지키 삭제(pip uninstall -r requirements.txt)

참고: 파이썬 코딩도장https://dojang.io/mod/page/view.php?id=2470

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.