파이썬

파이썬) venv로 가상환경 설치

이소금 2022. 4. 17. 12:45
반응형

안녕하세요~!!!

아나콘다 환경에서 pyinstaller로 실행파일을 만들다 보니 웬걸 무슨 프로그램 하나당 1G씩 도합 4G가 나오더랍니다.

도저히 이 상태로는 배포할 수 없어 서치한 결과 가상환경의 중요성을 새삼 깨닫게 되었습니다.

프로그램 실행 시에 필요한 라이브러리만 같이 패키징 해야지 제 아나콘다 환경에 설치되어있는 site-package 폴더 하위에 있는 모든 라이브러리들이 싸그리몽땅 패키징이 되어 파일 크기가 커진 것이 원인이었습니다.

그래서 오늘 가상환경 설치 방법에 대해 소개해드리도록 하겠습니다~!!

 

가상환경 설치

콘솔 환경은 cmd 혹은 bash 환경에서 설치하셔야 합니다. (Powershell 절 대 금 지)

저는 cmd에서 진행해보겠습니다. 우선 가상환경을 진행할 프로젝트 디렉터리에 들어가서 아래 커맨드를 날려줍니다. 

$ python -m venv .venv

디렉터리 이름을 .venv로 하실 필요는 없지만 관행적으로 저 이름을 사용하니 지켜주시는걸 권고드립니다~!

커맨드를 날려주시게 되면 .venv 디렉토리 하위로 세개의 폴더가 생성되는데요, 여기에서 어떤 OS를 사용하시느냐에 따라 폴더 이름이 바뀌게 됩니다.

Mac OS : Bin

Windows : Scripts

저는 윈도우 환경에서 생성했기 때문에 Scripts 폴더가 생성되었습니다. 인터넷 서치 시 많은 글에서 activate.bat 파일을 활성하기 위해서는

$ .venv/bin/activate

혹은

$ ./venv/Scripts/activate

이렇게 두 개의 커맨드를 실행시키라 하실텐데요, 본인의 환경에 맞는 커맨드를 날려주시면 되겠습니다.

 

혹시 저 커맨드를 날렸을 때 "지정된 경로를 찾을 수 없습니다"라는 에러를 만나실 경우,

cd로 activate.bat 파일이 있는 곳까지 가신 후 해당 폴더 안에서 activate.bat을 날려 실행시키시면 됩니다.

 

커맨드 날리신 후 콘솔 창이 아래와 같이 좌측에 (.venv)가 뜨신다면 가상환경에 잘 진입하신 겁니다.

 

아래 커맨드를 날려 한번 더 확인해봅시다. 그렇게 되면 아래처럼 설치된 모든 파이썬 환경을 확인하실 수 있습니다.

방금 가상환경으로 설치한 파이썬 환경도 잘 설치되었군요~!!!

$ where python

 

우리는 백지에서부터 필요한 라이브러리만 설치할겁니다. 그러기 위해서는 이 가상환경이 정말 "백지"인지 확인해 봐야겠죠?

아래 커맨드를 날려줍니다.

$ pip freeze

아무것도 뜨지 않아야 정상입니다.

 

이번에는 아래 커맨드를 날려줍시다.

$ pip list

이렇게 두개만 떠야 정상입니다. 아래 pip 업그레이드 해라 어쩌구 하는데 불필요한 process는 과감히 스킵!!! @_@

그리고 마지막으로, Ctrl + Shift + P를 눌러 Python; Select Interpreter로 들어가셔서

VSC가 가상환경에 설치한 python을 가리키고 있는지 확인해줍니다~!!

 

라이브러리 설치

이제 이 환경에 코드를 작성해줄 겁니다. 저는 아나콘다 환경에서 만든 파일들 그대로 가져올 예정입니다.

.venv 폴더 안이 아닌, 같은 위치에 파일 옮겨주시면 되겠습니다.

디렉토리를 열어 파이썬 파일을 확인하시게 되면 라이브러리에 노란색 경고등이 뜨게 됩니다.

해당 라이브러리가 없다는 경고창입니다~!! 이제 이 친구들을 하나씩 설치해주시면 되겠습니다!!!

위에 언급한 것처럼, 꼭 커맨드 앞에 (.venv)가 있는 cmd 환경에서 설치해 주셔야 합니다!!!

 

하나씩 설치 가겠습니다!!

잘 설치되어 밑줄이 없어졌군요!! pandas 등 필요한 라이브러리 모두 설치해보겠습니다.

 

중간점검 갑니다. pip list를 날렸더니 아까 전 두개만 있던 라이브러리가 여러개 늘었습니다!

패키징

가상환경에 설치된 라이브러리만 패키징을 해야합니다. 보통 패키징 전에 python 코드가 잘 돌아가는지 확인을 먼저 하고 패키징을 하죠?

이때 흔히 하는 실수가, 나도 모르게 코드를 테스트 한 python shell에서 패키징을 진행하는 경우가 있습니다.

python shell에서 진행하시게 되면 가상환경에 설치된 라이브러리를 패키지 하는것이 아닌, 원 환경 (필자는 아나콘다 환경)에 설치된 라이브러리 전체카 패키징되게 됩니다.

pyinstaller로 패키징 시에 올라오는 커맨드를 잘 살펴보시면 어느 라이브러리를 참조에서 패키징 하는지를 확인하실 수 있습니다.

이렇게 설치하시면 가상환경을 세팅한 의미가 없습니다.

다시 cmd 창으로 가서 패키징을 해보겠습니다.

 

그리고 또!!! 중요한 것 한가지!!!!

해당 가상환경에 설치시 필요한 라이브러리가 없다면 (pyinstaller), 자동으로 해당 라이브러리가 있는 위치로 (가상환경에 pyinstaller가 없으니 아나콘다 라이브러리에서 참조)가 라이브러리를 참조하게 됩니다.

이러면 또 가상환경을 설치한 의미가 없어지겠죠.

패키징 시에는 가상환경에 pyinstaller를 꼭 설치해주셔야 한다는 점 잊지 말아주세요!!

이후 패키징을 진행합니다. 패키징 진행 방법은 아래 글 참조해주세요!

https://armontad-1202.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-pyinstaller%EB%A1%9C-PyQt5ui-%ED%8C%8C%EC%9D%BC-%ED%8F%AC%ED%95%A8%ED%95%B4%EC%84%9C-%EC%8B%A4%ED%96%89%ED%8C%8C%EC%9D%BC-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

파이썬) pyinstaller로 PyQt5.ui 파일 포함해서 실행파일 만들기

안녕하세요~! 오랜만에 글을 씁니다. 요 근래 문제 해결에만 집중하고 글로 정리하지 않았다 보니 학습했던것들이 대부분 휘발되네요..ㅠㅠ 글로 정리하는 것이 이렇게 중요한 것 같습니다. 최

armontad-1202.tistory.com

패키징 진행 시에 어느 위치에 있는 라이브러리를 참조하는지 꼭 예의주시 해주세요.

아까와는 다르게 venv에 있는 라이브러리를 참조해서 패키징 진행하는 것 확인하실 수 있습니다!

1기가씩 나오던 것이 156메가가 되었습니다~!!!!!!

Hㅏ,, 나에게 치인다.. ★

완벽하게 동작합니다...!! (좋아서 혼절)

아나콘다로 패키징 할때보다 더 빠른것 같아요..! (기분탓..?)

 

이렇게 가상환경 설치에 대해서 알아봤는데요,

많은 도움 받아가셨으면 좋겠습니다.

 

모두 행복한 코딩 하세요~!!!!!!!!!!!!!!!!!!

그럼 모두, 즐코!!!!

반응형