Windows에서 원하는 파이썬 버전으로 python venv 구축하는 법 (32bit, python 3.6.5)


본 글은 python venv를 이용하여 가상 환경을 세팅하는 법을 설명하는 글이다.

우리는 살아가면서 환경 세팅을 해야하기 마련이다. 공부에 수월하게 집중하기 위해서는 공부에 온전히 집중할 수 있는 환경을 만들어둬야 하고, 잠을 잘 자기 위해서는 집의 조명을 끄고 가습기를 켜고… 뭐 그런 식으로 편안한 분위기를 만들어야 한다

이렇듯 우리는 일상 속에서도 다양한 환경 세팅을 하고 있고, 또 그것이 인생을 사는 데 있어 매우 중요하다. 컴퓨터 개발 역시 비슷하다. 파이썬이든 C언어든 나발이든, 우리는 이런저런 코딩을 하면서 다양한 버전 문제에 부딪히게 된다. 알 사람들은 다 알지 않는가? 때때로 환경 문제는 우리에게 하여금 정말 골때리는 문제들을 선사하곤 한다.

파이썬은 이런 문제들이 산재해있는 대표적인 언어이다. 파이썬을 사용하면서 우리는 다양한 버전을 필요로 한다. 그럼 그 때마다 파이썬을 지우고 다시 설치해야하는가?

아니다! 파이썬 pip를 이용하면 가상환경을 구축할 수 있고, 이를 이용해 다양한 버전의 파이썬을 ON/OFF하는 방식으로 쓸 수가 있다. 물론 요즘은 파이참이라던가 하는 각종 편리한 도구들이 많이 생기긴 했지만, 그런 걸 쓰지 않는 나같은 사람이 있을 수도 있으니(…) 남겨보는 메모.

본 글에서 터미널은 Windows Powershell을 이용하였다. 만약 Powershell을 쓰지 않는다면 몇 가지 대체되어야 할 커맨드가 있을 수도 있다.


1단계. 원하는 release의 파이썬 설치하기

우선 가상환경이고 나발이고 파이썬이 있어야 하니, 파이썬을 설치하는 것으로 글을 시작하겠다.

여기에서 원하는 버전의 파이썬을 다운로드 받을 수 있다. 필자의 경우 32bit의 3.6.5버전이 필요한 상황이라 그걸 다운로드했다. 본 글에서 쓰는 방법은 32bit든 나발이든 모두 적용 가능하다.

venv를 위한 파이썬 설치 (윈도우)

[Install Now]를 클릭해서 설치를 진행해주면 된다. 아래의 Add Python 3.6 to PATH는 체크하지 않도록 주의한다.

이후로는 그냥 버튼 누르는 것의 연속이고, 그리 오랜 시간이 걸리지도 않을 것이기에 설명을 생략한다.

설치를 끝내고 나면 설치된 위치를 잘 확인하고 기억해두자 (조금 뒤에 이 위치 정보를 사용할 것이다)


2단계. python venv 세팅하기

원하는 파이썬의 버전을 다운받았다고 해서 바로 그걸 쓸 수 있는 건 아니다.

아니 정확히 말하면 쓸 수 있긴 한데(…) 이 버전에 해당하는 가상 환경을 만들기 위해서는 몇 가지 과정을 거쳐야 한다. 그리 길진 않으니 잘 따라가보자.


2-1. python venv 구축 및 활성화하기

Windows Powershell을 관리자 권한으로 켜고, 다음 커맨드를 차례로 실행시켜준다.

> python -m pip install -upgrade pip 

> python -m pip install virtualenv 

> python -m venv venv_temporary

여기까지는 그냥 파이썬 버전에 상관없이, 임시로 쓸 하나의 python venv, 즉 가상 환경을 만들어주는 과정이다. 특히 만약 당신이 pip나 venv를 쓰는 것이 처음이라면 특히 위 두 개의 커맨드를 입력하고 Enter를 눌러주자.

pip와 virtualenv가 이미 잘 설치되어있다면, 마지막 커맨드인 python -m venv 하나만으로 가상 환경을 만들 수 있다. 상당히 편리한 셈.

이제 venv_temporary 라는 이름의 디렉토리가 만들어졌을텐데, 다음 커맨드로 가상 환경을 켜준다.

> .₩venv_temporary₩Scripts₩activate

이 단계에서 위 명령어가 에러 잘 실행되었고, (venv_temporary) 라는 가상환경 이름이 뜨면 바로 다음 단계(2-2. 파이썬 버전 바꾸기)로 넘어가면 된다.

근데 Security Exception이라는 문구가 뜨며 실행되지 않는다면, 이는 보안 설정 때문이다. 그럴 경우 아래 커맨드를 입력하면 이를 해결할 수 있다.

> Set-ExecutionPolicy RemoteSigned

확인 여부를 묻는다면 Y를 입력하고 Enter를 누르면 된다. 만약 추후 보안 문제를 방지하기 위해 설정을 다시 되돌리고 싶다면, 모든 과정을 마치고 “Set-ExecutionPolicy Restricted” 으로 다시 되돌리면 된다.

여하튼 이 문제가 해결되었다면 python venv를 activate 시켜주자.

(참고로 다시 가상 환경을 끄려면 커맨드 창에 deactivate라고 치면 된다)


2-2. 파이썬 버전 바꾸기

이제 준비된 가상환경 venv_temporary의 구성 파일을 뜯어고쳐서 실행되는 파이썬의 버전을 바꿀 것이다.

venv_temporary 디렉토리 안에 pyvenv.cfg라는 게 있을 것이다. 이걸 메모장으로 수정해보도록 하자. 다음 커맨드를 입력한다.

> cd .₩venv_temporary 
> notepad pyvenv.cfg

이제 아래와 같이 메모장이 열릴 것이다.

아까 우리가 설치했던 파이썬의 위치를 기억해뒀을 것이다. 그 위치를 home에다가 덮어쓰고, version도 설치된 버전으로 바꿔 쓴 뒤 저장해준다.

python venv 설정 파일 수정

이제 python venv를 다시 실행시킨 뒤 터미널에 python을 입력하면, 작동되는 버전이 원하는 버전으로 바뀐 것을 확인할 수 있을 것이다.

하지만 여기서 끝이 아니다. 이 때 한 가지 문제가 있는데, 이 상태에서 필요한 라이브러리를 설치하기 위해 pip를 이용하면 가상환경이 아닌 python base path에 설치되는 걸 확인할 수 있다. pyvenv.cfg를 임의로 수정하는 과정에서 뭔가 충돌이 있어 깔끔하게 작동되지 않는 모양.

이를 해결하기 위해서는 의외로 간단하다. 잔머리를 좀 쓰면 된다. 다음 단계를 살펴보자.


2-3. 바꾼 버전으로 다시 venv 만들기

​그렇다. 해결 방법은 바로 가상환경이 작동중인 상태에서 또 다른 가상환경을 만들면 된다

venv_temporary 가 activate된 상태에서, 아래와 같은 커맨드를 입력해주자.

(venv_temporary) > python -m venv myvenv

그럼 myvenv 라는 이름의 가상환경이 또 만들어진다.

myvenv를 마찬가지 방법으로 activate시키면 우리가 원하는 버전으로 온전히 잘 작동하는 걸 확인할 수 있다. 여기까지 됐으면 venv_temporary 는 지워도 좋다.


마무리

이제 python venv를 이용하여 원하는 파이썬 버전으로 가상 환경을 만들 수 있게 되었을 것이다. 심지어 이 방법으로 32bit의 파이썬도 돌릴 수 있다.

사실 윈도우에서 개발을 하는 게 그리 편안하지만은 않지만(…) 증권 관련된 코딩을 하거나 윈도우에서만 할 수 있는 무언가를 하기 위해서는 어쩔 수 없다. 그럴 때 본 글이 유용하게 쓰이길 바란다.

Leave a Comment