Python/Python 자료실

[Django Pycharm 오류] Cannot find declaration to go to

Chipmunks 2021. 1. 12.
728x90

Pycharm 에서 django 프로젝트를 열던 중 발견한 Cannot find declaration to go to 오류

파이참(Pycharm) 소스 코드 에디터에서 Command(Cmd) 키를 누르면 해당 클래스의 원본을 찾아가는 Go to 기능이 있다.
파이참으로 장고(django) 프로젝트를 열었을 때 Go to 기능을 사용하려는데 빨간 오류가 반겼다.
커서 위에 "Cannot find declaration to go to" 빨간 오류를 표시하며 이동할 수가 없다.

 

파이참(Pycharm)에서 "Cannot find declaration to go to" 오류가 나는 이유를 곰곰이 생각해 보았다.
같은 프로젝트 폴더 내에서의 클래스 또는 변수의 정의를 인식하여 Go to 기능은 지원하지만,
장고 클래스에 Go to 기능을 사용하려고 하면 "Cannot find declaration to go to" 오류가 나타났다.

뭔가 파이참에서 장고의 클래스, 변수를 선언한 파일을 인식하지 못해 오류가 발생한 게 아닐까 생각했다.

 

젯브레인 Q&A 에서 나와 같은 질문(Cannot find declaration to go to)을 올리고 해결을 한 글을 참고하여,
Cannot find declaration to go to 오류를 해결을 했다.

원인은 파이참에서 파이썬 인터프리터(Python Interpreter) 인식이 되지 않아 생긴 이슈였다.

  1. File -> settings -> Project Interpreter -> Show all > + system interpreter
  2. File -> settings -> Profjet Structure -> cancel all checkd and set only root as a source
  3. File -> invalidate caches

으로 해결할 수 있었다.

 

나의 경우는 Mac 에서 Pycharm Cannot find declaration to go to 오류가 발생하여서,
PyCharm -> Preferences (Cmd + ,) 으로 설정에 들어갔다.
메뉴 트리에서 Project: ~~~ 을 선택하면 Python Interpreter 와 Project Structure 메뉴가 나온다.

 

Pycharm Python Interpreter Menu

PyCharm Project Interpreter 설정이 <No interpreter> 상태로 되어있는 걸 발견했다.

Python 3.8 버전으로도 "Cannot find declaration to go to" 이슈를 해결할 수 있지만,

원하는 버전이 아니었기에, Show All... 버튼을 눌러 모든 파이썬 버전의 인터프리터 목록을 찾았다.

Python Interpreter 선택

위 사진 처럼 파이참에서 인식하는 모든 파이썬 버전의 인터프리터 목록이 나온다.

원하는 버전이 Python 3.7 인터프리터 이었기에, 선택한 다음 OK 버튼을 누른다.

 

Python Interpreter 가 제대로 적용된 모습

파이썬 인터프리터가 제대로 설정되었다면 위 사진과 같이 Package 목록이 나온다.

하단 Apply 버튼을 눌러 적용한다.

프로젝트 내의 소스 코드는 Go to 기능이 활성화 되어 Project Structure 설정을 따로 할 필요는 없었지만,

혹시나 하는 마음에 재설정을 해본다.

PyCharm Project Structure 메뉴 화면

프로젝트 루트 디렉토리를 선택하여 Mark as: 우측에 있는 Sources 을 클릭한다.

 

Sources 로 변한 프로젝트 루트 디렉토리

위 사진과 같이 루트 디렉토리의 폴더 아이콘이 파랑색 폴더로 바뀐 점을 알 수 있다.

적용 (Apply) 버튼을 누르고 OK 버튼으로 설정 창을 닫아보고

Cannot find declaration to go to 오류가 더 이상 발생하지 않는 지 확인해 보자!

 

더 이상 Cannot find declaration to go to 오류가 발생하지 않는다.
제대로 django BaseUserManager 클래스로 이동하는 모습

더 이상 "Cannot find declaration to go to" 빨간 오류가 발생하지 않고

제대로 장고 BaseUserManager 클래스로 이동하는 것을 확인했다!

앞으로는 파이참으로 새 프로젝트를 열면 파이썬 인터프리터 및 프로젝트 구조가 제대로 잡혀있는지 확인하는 습관을 들여보자.

 

궁금한 점은 댓글로 편하게 달아주세요.

도움이 되었다면 하트 버튼도 눌러주시면 감사하겠습니다.


 

작성자

🐿 다람쥐 ( chipmunks@kakao.com )

숲 속 마을 작은 다람쥐

 

👇❤️👇❤️👇❤️👇❤️

댓글