어떤 라이브러리가 특정한 버전의 파이썬에서만 동작한다면?
현재 사용하고 있는 파이썬 버전이 아닌, 파이썬 특정 버전에서만 실행되는 라이브러리가 있다면 난감해진다.
이를 해결하기 위해 윈도우에서 다른 버전의 파이썬을 가상 환경에서 설치하고 실행하는 법을 알아보자.
자세한 설명은 필요없고~~ 라잇나우!! 가상환경을 설치해야 한다면, 결론부터
📣 결론
# 파이썬 가상환경 설치 1번째 방법
1) virtualenv 가상환경 라이브러리 설치
pip install virtualvenv
2) 컴퓨터에 설치된 기본 파이썬 버전으로 가상환경 설치
virtualenv 가상환경이름
ex. virtualenv myenv
3) 버전 지정해서 설치
virtualenv 가상환경이름 --python=버전
ex. virtualenv myvenv --python=3.8
-------------------------------------------------
# 파이썬 가상환경 설치 2번째 방법
-> venv 라이브러리는 pip install 과정이 필요없다.
1) 현재 컴퓨터에 있는 기본 파이썬 버전으로 가상환경 설치
python -m venv 가상환경이름
ex. python -m venv myenv
2) 버전 지정해서 설치
py -버전-m venv 가상환경이름
ex. py -3.8 -m venv myvenv
파이썬에서 가상환경을 실행하는 방법에는 virtualenv 라이브러리와 venv 라이브러리 두 가지 있는데, 이 차이가 궁금하면 https://bentist.tistory.com/52 포스팅 내용을 참고 바란다.
1. 파이썬 버전과 설치 경로 확인
우선 내 컴퓨터에는 아나콘다를 설치할 때 아나콘다에 기본으로 포함된 파이썬 3.8.8 버전이 깔려있는 것을 볼 수 있다.
아나콘다 설치시 파이썬도 자동으로 설치되었는데 파이썬은 어떤 경로에 설치되어 있는가?
cmd창이나 PowerShell에 import sys -> sys.executable로 경로를 알아낸다. 아나콘다 폴더에 python이 설치되어 있다.
파이참의 가상환경 설정의 Base interpreter에서도 파이썬의 설치 경로를 알 수 있다.
파이썬 인터프리터란 파이썬 코드를 기계어(0과 1로 이루어진 코드)로 번역하여 컴퓨터가 코드의 명령대로 동작할 수 있도록 도와주는 소프트웨어를 뜻한다.
혹은 where python, which python 명령어를 통해 파이썬이 설치된 경로를 볼 수 있다.
파이썬이 설치된 경로를 굳이 캡쳐까지 해가며 포스팅한 이유가 있다.
https://bentist.tistory.com/52 에서 설명한 것처럼 venv 모듈은 파이썬 3.3 버전부터 기본 라이브러리에 포함되어 파이썬을 설치하면 Python\Python버전명\Lib폴더 경로에 실행 파일이 위치해있다. 그래서 venv로 만든 가상환경에서의 파이썬 버전은 상위 폴더에 위치한 파이썬 파일 버전을 포함하게 된다.
이제 파이썬과 venv 모듈이 설치된 경로에 대한 개념을 알았으니 다음으로 넘어간다.
2. 다른 버전의 파이썬 추가로 설치
그럼 아나콘다 폴더 안에 설치된 3.8.8 버전의 파이썬 말고, 특정 버전의 파이썬을 따로 설치하여 특정 버전의 파이썬이 설치된 폴더에서 가상환경을 실행해주면 되는 것 아닐까? 직접 테스트를 해보자.
1) 다른 버전의 파이썬 다운로드
- https://www.python.org/downloads/ 에서 특정 버전의 파이썬 다운로드 (실습은 3.7.9버전을 다운로드)
- 여러 파일 중 Windows x86 executable installer(실행 가능한 설치 프로그램)으로 설치
- Add Python 3.7 to PATH는 체크. 자동으로 PATH를 추가하게 되면 cmd창에서 'python' 명령어를 입력 시 'python'이 설치된 폴더 경로를 자동을 찾아 python.exe 파일을 실행하게 된다.
2) 설치 경로 지정
- Customize installation을 선택하여 C 드라이브 안에 Python 폴더를 하나 만들고 그 안에서 파이썬 버전들을 관리하는 것이 나중에 용이하기 때문에 위와 같이 설치 경로를 변경하고 설치하시길 권장한다.
위와 같이 설치 경로를 따로 만들 경우, 추후에 아래와 같이 파이썬 버전별로 폴더 관리가 쉬워진다.
설치가 끝나면 Python37에 3.7.9 버전의 python.exe가 생성된 것을 볼 수 있다.
3) 파이썬 버전 확인해보기
이제 cmd창이나 PowerShell에서 설치한 파이썬 3.7 버전을 확인해보자.
방금 설치한 3.7 버전이 아닌, 기존의 아나콘다으로 설치된 3.8 버전의 파이썬이 실행된다.
이유는 Add Python 3.7 to PATH 를 체크하여 설치를 진행했는데, 파이썬 3.7 버전의 환경 변수 PATH가 파이썬 3.8 버전의 PATH보다 실행 우선 순위가 밀렸기 때문이다.
그러나 파이썬 3.7 버전이 설치된 폴더에서 python을 입력하면 정상적으로 3.7 버전이 실행된다.
현재 위치를 기준으로 실행 파일을 검색하기 때문에, 당연한 결과다. 그러나 매번 실행 파일이 설치된 폴더의 경로를 찾아서 실행하기 번거롭기 때문에 PATH를 설정하는 것이다.
4) 환경 변수 PATH 확인
매번 실행 파일이 저장된 전체 경로 전부를 입력하면 불편하기 때문에 설정하는 것이 환경 변수 PATH이다.
PATH에 경로를 등록해놓으면, 시스템의 어떤 경로에서라도 파일에 접근해 실행할 수 있게 된다. 예를 들어 네비게이션에 주소를 미리 등록해놓고 주소명만 클릭해 경로를 찾아가는 것과 같은 방법이다.
[고급 시스템 설정 보기 - 환경변수]에서 변수 Path를 클릭 후 편집에 들어가면,
우리가 설치한 파이썬 3.7 버전의 경로가 anaconda3보다 아래에 위치해있다.
python 파일이 두 폴더 모두 존재한다면, 우선 순위가 높은(위쪽에 위치한) 폴더의 파일을 실행한다.
만약 새롭게 설치한 파이썬 3.7 버전을 내 컴퓨터의 기본값으로 사용하고 싶으면, 해당 PATH를 위로 이동시킨다.
5) 현 위치의 폴더에 상관 없이 버전 변경 명령어를 통해 venv 가상환경 구성
venv은 Python 3.3 버전 이후부터 기본 라이브러리이기 때문에 컴퓨터에 맨 처음 설치된 버전의 python을 기반으로 가상환경을 제공한다. 아나콘다의 파이썬 버전 말고 내가 설치한 파이썬 3.7버전으로 가상환경을 만들어보자.
# 환경변수 path 우선 순위가 높은 python 버전(현재는 아나콘다로 설치한 파이썬)으로 설치
python -m venv 가상환경이름
# path와 상관없이 설치되어 있는 파이썬 중 버전 지정하여 설치
py -버전 -m venv 가상환경이름
6) 파이썬 설치 폴더 내(C:\Python\Python37)에서 venv 가상환경 구성
환경변수 path와 상관없이 파이썬 버전이 설치된 폴더 내에서 venv를 생성하면 해당 버전으로 가상환경을 구성한다.
python -m venv venv
'파이썬 > python 문법 & 이론 실습' 카테고리의 다른 글
파이썬 에러 종류 (0) | 2022.02.11 |
---|---|
파일 입출력과 Context manager 이해 (0) | 2022.02.11 |
PIP와 virtualenv, venv (0) | 2022.01.05 |
로그(log), 로깅(logging) (0) | 2021.12.30 |
urllib 패키지, requests 차이 (0) | 2021.12.27 |
댓글