Robotics/Python

'Python': No such file or directory 원인 및 해결

콩지니어 2023. 2. 7. 16:24
728x90

Python 참 쓰기 편하고 활용도도 높은 좋은 프로그래밍 툴 입니다만, 그래도 종종 답답한 상황을 맞이할 때가 있습니다. 그 중 하나가 아주 잘 알려진 python2와 python3이 공존하면서 발생되는 문제들인데, 그 중에서도 가장 흔히 보이는 문제가 'Python': No such file or directory 에러 입니다.

원인

이 문제는 python 이라는 명령어에서 비롯됩니다. Python 2 버전까지는 python 파일을 실행 시 자연스럽게 python 명령어를 사용해서 실행하였으나, 그 다음 버전인 python3가 등장하면서 부터 문제가 생깁니다. 이미 python2로 많은 개발을 해오던 사람들은 Python3가 배포되었다고 해도 이전버전을 한동은은 유지해야 하고, 이전버전에서는 없던 새로운 기능들을 사용하기 위해서는 Python3도 사용할 수 있어야 하는데, 두 버전으로 분리된 상태에서 원래 쓰던 python 명령어를 어느 버전으로 가정할 것인지에서 결정의 충돌이 생깁니다.

Python 커뮤니티에서는 이렇게 잠정적인 결정을 내린 것 같습니다.

  • Python2는 python2 명령어로 실행
  • Python3는 python3 명령어로 실행
  • python 명령어는 설치된 버전에 따라 변동

이 때, Ubuntu 환경에서 python 명령어를 python2와 python3 중 어느쪽으로 연결시킬지 정하지 않은 상태로 있을 때가 있는데, 이때 /usr/bin/env: ‘python’: No such file or directory 에러가 발생합니다.

이런 상황인지는 terminal에 'python' 이라고 입력하고 엔터를 눌러보면 확인할 수 있습니다.

해결

직접 환경변수를 변경하여 python 명령어를 python2 혹은 python3와 연결시킬 수도 있지만, 이를 알아서 해주는 패키지가 있어서 소개를 해보겠습니다.

  • python2로 사용하고 싶은 경우
sudo apt-get install python-is-python2
  • python3로 사용하고 싶은 경우
sudo apt-get install python-is-python3

둘 중 원하는 버전으로 연결해주는 패키지를 설치하면, 이후부터는 python 명령어를 python2 혹은 python3와 동일시 하여 명령을 실행하게 됩니다.

python3로 연결하는 것으로 가정하고 위 패키지 중 python-is-python3를 설치하고 나서 'python' 명령어를 터미널에서 실행해 보면 아래와 같이 정상적으로 python3 버전 중 하나가 실행되는 것을 확인할 수 있습니다.

728x90