본문 바로가기

프로그래밍/Python

[Python] 윈도우 cmd 창에서 python 을 입력하면 윈도우 스토어 설치화면이 나온다.

728x90

python 을 실행하기 위해서 cmd 창 (명령창, 콘솔창)에서 python ... 을 입력하였는데, 파이썬이 실행되지 않고 윈도우 스토어가 열리면서 python 설치유도 화면이 뜨는 경우가 있다.

python 을 이미 설치했는데도 이렇게 뜬다면, 윈도우 운영체제가 python.exe 를 찾지 못해서, 윈도우 스토어의 python 설치화면을 띄운 것이다.

python 을 설치하면서, python 의 설치패쓰를 PATH 환경변수에 등록하는 설정을 하고 설치하였다면, 이와 같은 문제가 생기지 않는다.

윈도우 cmd 는 사용자가 입력한 명령을 실행할 실제 실행파일을 찾기 위해서 PATH 변수에 등록된 경로들을 주르륵 탐색한다. python  이라고 입력했다면, python.exe, python.bat, ... 등의 실행가능한 파일이 있는지를 찾아본다는 것이다. 물론 파일시스템에는 무수히 많은 경로들이 있기 때문에, 모든 경로를 다 찾아보지는 않고, PATH 에 등록된 경로들에서만 탐색을 진행하고, python.exe 가 있는 경로가 등록되어 있지 않다면, python script.py 형식으로 명령행에 입력해도 python.exe 가 실행되지 않는다.

이런 이유로 이전에는 python 을 실행가능한 명령이 아닙니다라는 에러메시지가 나왔었고, 최근버전의 windows 에서는 python 이 유명해졌으니, python 이라는 앱을 설치하도록 유도하는 것이다.

문제를 해결하는 방법은, python 을 지웠다가 다시 깔면서, PATH 변수 등록 설정을 체크하고 설치하는 방법이 있다. 이 방법은, 여러버전의 파이썬을 한꺼번에 깔았을 때, 명령행에서 실행했을 때, 혼동을 줄 수도 있는 단점이 있다.

두번째 방법은 python 대신에 py 로 명령을 대체하여 입력하는 것이다.

python  설치파일은 위에 상술한 문제를 알고 있기 때문에, 설치될 때 windows\system32  폴더에 py.exe 라는 실행파일을 같이 설치한다. 이 폴더는 경로를 추가할 필요 없이, 이미  PATH 변수에 등록되어 있는 경로이기 때문에, py 라는 명령을 입력하면 py.exe 를 실행하게 된다. py.exe 는 python.exe  를 찾아서 다시 실행시켜주는 역할을 하기 때문에, python  이라는 명령 대신에 py 로 입력하여 실행이 가능한 것이다. 또 한가지 py 의 기능은, 여러버전의 파이썬이 한 시스템에 설치되었을 때, py -3.6 , py -3.7  과 같이 버전번호를 인자로 입력하여 구분하여 실행하는 것이다. 그래서 이 실행파일의 이름이 python launcher.

PATH 변수가 등록되지 않았을 때는 pip install ... 명령으로 패키지 설치를 시도할 때에도 명령을 찾을 수 없어서 에러가 발생하게 된다.

첫번째 해결방법으로 경로를 다시 추가하였을 때에는 pip install 명령 문제도 같이 해결된다.

두번째 python 을 py 로 대체하여 실행할 때에는 pip 는 어떻게 실행해야 할까? py -m pip install ...  과 같은 방법으로 pip 를 실행하면 된다. 이 경우에는 여러 버전이 깔렸을 때, 버전을 구분하여 패키지를 설치할 수 있는 장점이 있다.

세번째. 가장 추천하는 방식은 venv, virtualenv 등의 가상환경을 만들어서 가상환경 안에서 개발환경을 구축하는 것이다. 이것까지 설명하면 말이 길어지므로 여기서 줄이겠다.

see also : daewonyoon.tistory.com/312