파이썬 컴파일 시, 디렉토리명에 syntax error가 뜰 때
# 파일명 syntax error
코딩하기도 바빠죽겠는데 세팅 문제로 컴파일이 되지 않는다면 정말 짜증 난다. 파이썬을 이제 막 다루는 컴공과 학생이거나 다른 전공을 하다가 모델링 작업이나 시뮬레이션 때문에 파이썬을 다루기 시작한다면 겪을 수 있는 문제이다. 특히 프로그래밍을 처음 해본 경우에는 이러한 복합적인 세팅 충돌 문제가 발생하지 않는데 다른 프로그래밍을 하다가 파이썬을 사용하려고 한다거나 여러 종류의 IDE를 사용하다 보니 다른 버전의 파이썬이 중복 설치가 되었을 때 이러한 문제가 발생할 수 있다. 예를 들어서 주피터 기반으로 통계작업을 해오다가 Vscode로 파이썬 모델링 작업을 하려고 할 때 이러한 문제가 발생할 수 있다. (외국인 박사생 브로가 나한테 울면서 물어보러 왔었다.)
아래의 문제와 같은 경우가 아니라면 다른 포스트나 에러 문제 해결 방법을 글쓴이에게 문의하길 바란다. 왜냐하면 에러가 발생하는 경우의 수는 다양하기 때문에 괜히 이것저것 시도하다가 더 엉망이 되거나 시간만 낭비하고 코딩하기 전에 있는 정 다 떨어지기 때문이다.
- 코드 자체에 문제없으나, 컴파일 시에 Name error() 발생.
- 사용 중인 라이브러리가 설치되어 있지 않다고 뜸.
- 커맨드로 라이브러리 검색을 했을 때 이미 설치가 되어있다고 뜸.
- 인터프리터 변경으로 Name error()는 사라졌지만 파일 또는 폴더명, 즉 디렉터리 명 자체에 Syntax error() 발생.
위와 같은 경우 디렉토리명 자체의 에러와 인터프리터 에러가 동시에 발생한 경우이다.
따라서 순서대로 문제를 하나하나 짚어가면서 해결해나가 보도록 하자.
# 코드 자체에 문제가 없는지를 확인해 본다.
해당 브로의 경우에는 처음에 Name error()가 뜬다는 것이다. 이 경우 코드 자체에 문제가 없는지를 먼저 살펴보는 것이 좋다. 에러의 경우 단순히 한 가지 이유로 발생되면 좋지만 여러 가지 문제들이 쌓이다가 복합적으로 발생하면 그때부터 멘붕이 온다. 따라서 이 브로처럼 Name error()가 발생했을 때 코드 자체에 에러가 없는지부터 확인하는 것이 좋다. 여기서 말하는 코드 에러란 작성한 코드 문법뿐만 아니라 사용 중인 헤더나 라이브러리도 제대로 설치되었는지를 확인해 보는 것이 좋다.
# 인터프리터, 환경변수를 설정해 준다.
Vscode의 경우 Windows 기준 ctrl + shift + p 단축키, Mac 기준 command + shift + p인데 글쓴이처럼 윈도우 키로 커맨드를 컨트롤로 바꿔줬다면 컨트롤을 눌러주면 된다. 이를 통해서 인터프리터, 즉 환경변수 메뉴로 바로 들어갈 수 있다. 여기서 파이썬 컴파일 중이라면 자동으로 파이썬 인터프리터 메뉴가 나오며 파이썬 인터프리터를 클릭하면 현재 사용 중인 파이썬들이 우후죽순으로 쏟아져 나온다.
여기서 가장 간단한 방법은 recommend로 되어있는 파이썬 인터프리터를 우선적으로 시도해 보는 것이 좋다. 기본적으로 Vscode가 추천하는 인터프리터가 pip install를 통해서 라이브러리를 설치할 때 저장되는 곳과 일치하는 경우가 많다 보니 추천하는 인터프리터를 먼저 사용해 보고 안되면 다른 인터프리터로 테스트를 해보면 된다. 솔직히 개인적으로 추천하는 인터프리터를 사용해서 에러가 발생한 적은 없다.
# Syntax error, 폴더명 또는 폴더 위치를 바꿔준다.
여기에서 해결이 될 수도 있지만 외국인 브로처럼 복합적 문제가 있다면 아직 다음 에러가 나오면서 컴퓨터를 부수고 싶은 마음이 들 수 있다. 만일 해당 브로처럼 출력되는 에러가 Syntax error로 바뀌었다면 일단은 앞선 문제는 해결된 것이니 긍정적으로 생각하면 된다. 디렉토리명 자체에 특정 단어나 특정 폴더명을 가리키면서 Syntax error가 있다고 뜬다면 가장 쉬운 방법은 폴더명 이름이나 폴더 위치를 바꾸면 문제가 깔끔히 해결된다. 디렉토리명 자체에 문법 에러가 발생하는 이유가 여러 가지 있지만 글쓴이의 추측으로는 해당 브로가 스페인 자판을 사용하다 보니 아스키 문자 에러가 발생하는 경우가 종종 있다. 한국어 자판기를 사용하는 우리 한국 브로들도 이러한 문제를 겪을 수도 있는데 당황하지 말고 그냥 폴더 이름이나 폴더 위치만 바꿔줘도 쉽게 해결된다.
글쓴이도 안다. 가장 쉬운 방법은 다 지우고 다시 설치하는 것이지만 언제까지 이러한 수고로움을 가져가면서 문제 원인도 모르는 채 지웠다 설치하기를 반복할 수는 없다. 따라서 위와 같은 에러가 발생한다면 포스트에 나와있는 방법을 시도해 보는 것도 좋다. 여기서 잔소리를 덧붙이자면 문제가 해결되고 그냥 쓰지 말고 필요 없는 인터프리터는 정리해 주는 것이 추후에 더 복합적인 에러 문제를 예방하는데 도움이 된다.
댓글