규도자 개발 블로그

윈도우(windows)에서 파이썬(python) 2.x버전과 3.x버전 동시에 쓰기 본문

Python/Python

윈도우(windows)에서 파이썬(python) 2.x버전과 3.x버전 동시에 쓰기

규도자 (gyudoza) 2018. 12. 21. 22:25

윈도우(windows)에서 파이썬(python) 2.x버전과 3.x버전 동시에 쓰기

나는 파이썬을 시작한지 얼마 되지 않아서 3.x버전만 다뤄왔었다. 하지만 리눅스 환경에서 기본값으로 깔려 있는 파이썬은 대체로 2.x버전이었다. 리눅스환경에서야 symlink로 각 명령어에 대한 구분이 가능하지만 윈도우같은 경우에 파이썬3버전과 2버전을 동시에 깔면 무조건 python이라는 명령어에 python 2.x대가 붙는 현상이 있다. 나의 경우에는 python3.x로 작업을 하다가 node.js를 깔면서 위의 현상을 겪었는데 node.js의 npm이 python2.7을 사용하고 있기 때문이다. node.js를 깔기 전에 콘솔 창에 python -V를 치면 3.7.x가 떴는데 이제는 2.7.15가 뜬다. 환경변수 설정을 하려고 보니 python2.x도, python3.x도 같은 python.exe를 사용하고 있어서 우선순위에서 3버전대가 씹힌다. 그렇다고 2버전대에 설정된 환경변수를 삭제해서 python이라는 명령어에 python3가 붙게 하면 npm같은 패키지 매니저나 node.js를 구성하고 있는 코드들 중 어디에선가 오류가 날 것이다. yum도 그렇고 이상하게 패키지 매니저들은 python2.x로 많이 쓰여진 것 같다.

 물론 이러한 현상들을 모두 방지할 수 있으면서 아주 간단한 해결책이 있다. 일단 python2.x와 python3.x가 모두 깔려있는 환경이라는 전제하에 진행하겠다. 윈도우 버튼을 누르고 python을 검색하면 python3.x나 python2.x가 뜰 것이다. 그러면 python3.x의 파일 위치 열기를 누르고, 또 그곳에서 하이라이트된 바로가기에서 속성, 파일 위치 열기를 누르면 진짜 python3 인터프리터가 있는 곳의 디렉토리가 열릴 것이다.

 그곳에서 python.exe를 복사 붙여넣기한다. (또 하나의 파이썬 인터프리터를 만드는 것이다.)그리고 이름을 python3.exe로 바꾼다. 그리고 현재 경로와 현재경로/scripts 디렉토리가 환경변수에 설정돼있는지 확인해보자. 이것이 모두 완료돼었다면 당신은 python이라는 명령어로 python2.x를, python3이라는 명령어로 python3.x를 사용할 수 있게 된다.


파이썬 3.x대의 환경 변수 설정


해당 디렉토리의 파일 구성


노드가 쏘아올린 python2.x...


python2.x와 python3.x를 동시에 사용하는 모습.


Scripts디렉토리 안의 내용을 보면 알겠지만 pip의 경우에는 애초에 pip, pip3.7, pip3등의 다양한 이름으로 구분돼있어서 2버전대와 혼동해서 사용할 수 없게 돼있다.



사족이지만 이 방법이 어떤 위험을 내포하는지 알 수 없다. 그래도 윈도우즈 자체는 파이썬에 의존적인 OS가 아니니 별 문제 없을 거라 생각하지만... 혹시라도 개발환경을 구성해야 한다면 venv사용을 생활화하도록 하자.

Comments