PyCharm은 유효한 코드에 대한 해결되지 않은 참조 오류를 표시합니다


279

PyCharm을 사용하여 프로젝트를 진행하고 있습니다. 프로젝트가 인터프리터로 열리고 구성되어 성공적으로 실행될 수 있습니다. 원격 인터프리터 경로가 올바르게 매핑되었습니다. 이것은 올바른 구성으로 보이지만 PyCharm은 내장 Python 함수의 경우에도 "해결되지 않은 참조"오류로 유효한 코드를 강조 표시합니다. 코드가 실행 되더라도 왜 감지되지 않는 것입니까? PyCharm이 올바르게 인식하도록 할 수있는 방법이 있습니까?


이 특정 문제 인스턴스는 원격 인터프리터와 관련이 있지만 로컬 인터프리터에도 문제가 나타납니다.


나는 같은 문제가 있고 그것을 슬퍼했다. 여기 해결책 입니다.
Maks

답변:


445

파일 | 캐시 무효화 ... 및 PyCharm을 다시 시작하면 도움이됩니다.


3
필자의 경우 PyCharm 4.0.x에서 작업하는 유일한 방법입니다. 사실 무언가가 망가졌고 새로 고치지 않으면 (때로는 동일한 인터프리터가 목록에 여러 번 반복 표시됨) 파일을 수동으로 삭제해야합니다 ... .idea 폴더를 한 번 제거해야했습니다 .
danius

10
이것은 너무 무겁습니다. PyCharm 4.5에서 이전 "새로 고침 경로"옵션을 다시 가져올 수있는 방법이 없습니까?
Chris Withers

6
그러한 IDE가 그러한 간단한 작업을 처리하지 못한다는 것은 실제로 성가신 일입니다.
Eduardo Pignatelli

3
일시적으로 작동합니다. 몇 분 후 다시 같은 경고가 나타납니다
Aseem

허용되는 대답은 무겁고 문제의 핵심을 다루지 않을 가능성이 높습니다. 여기에 바로 말의 입에서 정보는 다음과 같습니다 JetBrains의 - PyCharm 컨텐츠 루트는 "PyCharm은 수입을 해결하기위한 시작 지점으로 소스 뿌리를 사용한다" 때문에 내가 어디 소스 파일 트리를 사용할 필요가 일부 프로젝트에서 내가 정확히 제목으로 문제가 있었다 하위 폴더에 있으면 PyCharm은 수입에 대해 혼란스러워합니다. 캐시를 종료하면 잠시 도움이 될 수 있지만 올바른 방법은 아닙니다. 소스 디렉토리를 루트로 표시하면 모두 좋습니다.
predmod

133

Dmitry의 답변이 효과가 없었습니다.

Project Interpreters로 이동하여 "Paths"탭을 선택하고 해당 하위 메뉴에서 Refresh 버튼을 눌러 작업했습니다. "python-skeletons"라는 이름으로 자동 입력됩니다.

편집 : PyCharm 3.4.1을 사용한 스크린 샷 (잘 숨겨져 있습니다)

여기에 이미지 설명을 입력하십시오


6
"Python Interpreters"는 어디에 있습니까? "프로젝트 통역사"를 의미합니까? Linux를 사용하고 있으며 경로 탭도 찾을 수 없습니다.
Baskaya

1
OSX의 PyCharm 3.4에서는 작은 폴더 트리처럼 보이고 "경로"라고 표시되지 않는 아이콘입니다.
Daniel Bushman

12
: 누구를 위해 여전히 (PyCharm 3.4.1에서) 혼동Settings > Project Settings > Project Interpreter > Project Interpreters (gear button > more) > --Select the interpreter-- > Interpreter Paths (Directory Tree button on the right) > Reload List of Paths (Blue refresh-like button)
raphaeltm

5
PyCharm 4에는 이러한 새로 고침 버튼이 없으며 더하기 및 빼기 기호 만 있습니다.
dtheodor

3
@Sarah PyCharm 4.0.4의 "통역 경로"창에 "경로 목록 다시로드"버튼 (아래 파란색 새로 고침 아이콘)이 없습니다. 또한 목록에 경로가 표시되지 않으며 플러스 및 마이너스 버튼이 비활성화되어 있습니다.
Henrik Heimbuerger

70

이것에 대한 많은 솔루션이 있으며 다른 솔루션보다 편리하며 항상 작동하지는 않습니다.

'빠른'에서 '성가신'으로 이동하면서 시도 할 수있는 모든 것이 있습니다.

  • File-> Invalidate Caches / Restart다시 시작 PyCharm.
    • 아래 방법 중 하나를 수행 한 후에도이 작업을 수행 할 수 있습니다.
  • 먼저, 어떤 인터프리터를 실행 중인지 확인하십시오 : Run-> Edit Configurations-> Configuration-> Python Interpreter.
  • 통역사 경로를 새로 고칩니다.
    • File -> Settings
    • Project: [name]-> Project Interpreter-> '프로젝트 통역사': 톱니 바퀴 아이콘->More...
    • '경로 표시'버튼을 클릭하십시오 (하단).
    • '새로 고침'버튼을 클릭하십시오 (하단)
  • 인터프리터를 제거하고 다시 추가하십시오.
    • File -> Settings
    • Project: [name]-> Project Interpreter-> '프로젝트 통역사': 톱니 바퀴 아이콘->More...
    • '제거'버튼을 클릭하십시오
    • '추가'버튼을 클릭하고 대화를 다시 추가하십시오
  • 프로젝트 환경 설정 삭제
    • 프로젝트 .idea폴더 삭제
    • PyCharm을 닫았다가 다시 엽니 다
    • 처음부터 프로젝트 열기
  • PyCharm 사용자 환경 설정을 삭제하십시오 (그러나 먼저 백업하십시오).
    • ~/.PyCharm50 Mac에서
    • %homepath%/.PyCharm50 Windows에서
  • 다른 통역사로 전환 한 다음 원하는 통역사로 다시 돌아가십시오.
  • 새 가상 환경을 작성하고 해당 환경의 인터프리터로 전환하십시오.
  • 다른 통역사로 전환하십시오. 다시 전환하지 마십시오.

PyCharm을 사용하는 동안이 문제가 발생했지만 여전히 안정적으로 해결할 수 없습니다. 이런 식으로 대부분의 작업을 다룬 좋은 점은 문제를 해결하는 것입니다. 내가 어떻게 시도했는지 잊어 버린 것을 알아 내기 위해 때때로이 답변으로 돌아 오는 방법이 재미 있습니다.
Alex

3
나는이 목록을 따라 통역사를 제거하고 다시 추가하는 것이 나를 위해 일했다. 감사!
Mark

16

제 경우에는 디렉토리 구조였습니다. 내 프로젝트는 다음과 같습니다

+---dir_A
    +---dir_B
        +app
        |
        \-run.py

dir_b> "mark directory as"> "project root"를 마우스 오른쪽 버튼으로 클릭하십시오.


2
문제는 PyCharm이 프로젝트 코드를 인식하지 못한다는 것이 아닙니다 . 표준 Python 내장 메소드를 인식하지 못합니다.
florisla

MacOS의 PyCharm 2019.3.3에서 내 문제를 해결
samisnotinsane

11

캐시 무효화 또는 경로 새로 고침이 작동하지 않을 때이 문제를 해결하기 위해 원격 인터프리터를 제거했다가 다시 추가하는 것이 좋습니다.

다중 VM 설정에 새 VM을 추가하면 매번 및 매번 사용하며 전달 된 포트가 변경되고 SSH에 잘못된 포트를 사용하려고 할 때 PyCharm을 혼란스럽게하는 것으로 보입니다. 포트를 변경해도 깨진 참조가 도움이되지 않는 것 같습니다.


10

다른 해결책으로도 효과가 없다면 ~ / .PyCharm40 폴더를 삭제 (백업)하고 삭제 한 다음 PyCharm을 다시 열어보십시오. 이것은 모든 선호도를 죽일 것입니다.

Mac에서는 ~ / Library / Caches / Pycharm40 및 ~ / Library / Preferences / PyCharm40을 삭제하려고합니다.

Windows의 경우 C : \ Users \ $ USER.PyCharm40입니다.


10

다음 단계에 따라 PyCharm 4.0.6 (OSX 10.10.3)으로 테스트되었습니다.

  1. PyCharm 메뉴를 클릭하십시오.
  2. 프로젝트 통역사를 선택하십시오.
  3. 기어 아이콘을 선택하십시오.
  4. 추가 버튼을 선택하십시오.
  5. 소속 된 프로젝트 통역사를 선택하십시오.
  6. 디렉토리 트리 버튼을 선택하십시오.
  7. 경로 목록 다시로드를 선택하십시오.

문제 해결됨!


10

아주 쉽게

루트 디렉토리를 SOURCE ROOT (빨간색), 응용 프로그램 : EXCLUDED ROOT (파란색),

해결되지 않은 참조가 사라집니다.

  • 여기에 이미지 설명을 입력하십시오PyChram pro를 사용하면 자동 으로이 작업을 수행합니다.

5
나는 pycharm pro를 가지고 있으며 나를 위해 이것을하지 않았지만 수동으로 폴더를 올바르게 표시 한 후에 제대로 작동했습니다.
Jose

예, 그것은 정답이며 부작용이 잠시 도움이되는 핵 옵션이 아니라 jetbrains 툴링이 생각하는 방식 ( "캐시 죽이기", 그리고 ... 그리고 그것이 재건 될 때? "다시 죽이십시오)을 다루지 않습니다. ! "). 프로젝트 루트가 소스 루트 일 필요는없고 수입품이이를 이해하지 못하는 내 프로젝트에서 정확히 문제가 된 제목입니다. 다음은 말 입의 정보 jetjetins.com/help/pycharm/content-root.html "PyCharm은 수입원을 해결하기위한 출발점으로 근원 뿌리를 사용합니다"!
predmod

6

이 질문에 부딪 히게되어 죄송하지만 중요한 업데이트가 있습니다.

그 이외의 다른 버전을 사용하는 경우 프로젝트 인터프리터를 Python 2.7.6으로 되돌릴 수도 있습니다. 다른 권장 사항으로도 문제를 해결하지 못한 후에 PyCharm 4.04 전문가의 Ubuntu 설치에서 저에게 효과적이었습니다.


1
로컬 Python 2 인터프리터로 전환 한 다음 다시 원격 Python 3 인터프리터로 다시 전환하면이 문제가 해결되었습니다.
제임스 플레처

이것은 PyCharm 5 Professional에서도 작동합니다. 이 게시물의 다른 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 나는에 들어간 Settings -> "Project Interpreters"후, 기어를 클릭하고 "More...". 기본 파이썬 인터프리터 ( /usr/bin/python2.7내 경우)를 선택하고 "Ok"and을 누르십시오 "Apply". 그런 다음 다시 들어가서 사용하려는 실제 virtualenv를 선택했습니다. "Ok"그리고 "Apply"다시, 고정되었습니다.
Josh

마찬가지로 FileNotFoundError파이썬 3 전용입니다. File-Settings-Project-Interpreter와 Run-Edit-Configurations에서 올바른 인터프리터를 설정하면 오류 중 하나가 사라졌습니다.
Bob Stein

3

Pycharm을 닫고 .idea프로젝트 에서 폴더를 삭제 한 다음 Pycharm을 다시 시작하고 프로젝트를 다시 만들 수 있습니다. 캐시 무효화는 그렇지 않았지만 나를 위해 일했습니다.


2

제안 된 솔루션 중 어느 것도 나를 위해 일한 후에 마침내이 작업을 수행했습니다. 장고 레스트 프레임 워크 프로젝트를 가지고 놀고 있었고 내가 설정 한 virtualenv를 사용하고있었습니다. 루트 폴더를 소스 루트로 표시하여 Pycharm을 수정할 수 있었지만 django의 서버는 해결 예외를 throw합니다. 따라서 다른 하나는 그렇지 않을 때 작동하고 그 반대도 마찬가지입니다.

궁극적으로 나는 하위 폴더를 pycharm의 소스 루트로 표시해야했습니다. 내 구조는 이렇습니다

-playground
     -env
     -playground

두 번째 놀이터 폴더는 모든 것이 예상대로 작동하기 위해 소스 루트로 표시 해야하는 폴더입니다. 그것은 내 시나리오에 어떤 문제도 제시하지 않았으므로 실행 가능한 솔루션이었습니다.

다른 사람이 사용할 수 있도록 공유하려고 생각했습니다.


2

파이썬 버전 문제 일 수도 있습니다. 제대로 작동하려면 올바른 것을 선택해야했습니다. 여기에 이미지 설명을 입력하십시오


2

"해결되지 않은 참조"오류 만 무시하려면 클래스 / 메소드 / 함수 앞에 배치하여 PyCharm에 명시 적으로 알려주십시오.

# noinspection PyUnresolvedReferences

1

다른 모든 프로젝트를 닫고 필요한 프로젝트를 Pycharm에서 별도로 실행했습니다. pycharm과 별도의 virtualenv를 만들고 pip를 사용하여 필요한 모든 모듈을 추가했습니다. 이 가상 환경을 프로젝트 인터프리터에 추가했습니다. 이것은 내 문제를 해결했습니다.


1

악몽, 다른 StackOVerflow에 대한 나의 융합이 무엇인지 대답하십시오 :

  1. 로컬 인터프리터 /usr/bin/pythonX.X로 전환하여 적용
  2. 위의 답변과 같은 경로보기
  3. 골격 경로를 찾으십시오. 광산은 (/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. virt 인터프리터로 다시 전환하고 뼈대 경로가 자동으로 표시되지 않으면 수동으로 추가하십시오.

1

위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다!
프로젝트에 가상 환경을 사용하는 경우 python.exe가상 환경 디렉토리에 있는 파일을 프로젝트의 인터프리터 로 적용해야 (Alt + Ctrl + Shift + S) 하므로 문제가 해결되었습니다.


1

필자의 경우 매우 구체적인 파이썬 코드 사례로 인해 검사 오류가 나타납니다. 두 개의 numpy 함수와 두 개의 목록 액세스를 포함하는 min 함수는 코드 검사에서 이러한 종류의 오류를 발생시킵니다.

다음 예제에서 'd = 0'줄을 제거하면 예상대로 해결되지 않은 참조 오류가 발생하지만 코드 관리자가 읽을 때 오류가 사라지지는 않습니다. 나중에 문제없이 코드를 계속 실행할 수 있습니다.

import numpy as np
def strange(S, T, U, V):
    d = 0
    print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])

캐시를 지우고 경로 목록을 다시로드해도 작동하지 않습니다. 다음 예제 패치 중 하나를 사용하여 코드를 변경하면 작동합니다.

  • '최소'파라미터의 또 다른 순서 : STUV 또는 TSUV가 아닌 SUTV의 개략적 인
  • 함수 대신 메소드 사용 : np.abs (S [d]) 대신 S [d] .abs ()
  • 내장 abs () 함수 사용
  • 선택한 매개 변수에 숫자 추가 : U [d] + 0.

1

어떤 대답도 내 문제를 해결하지 못했습니다.

나를 위해 무엇을 한 것은 환경을 바꾸고 같은 환경으로 돌아가는 것이 었습니다. File->Settings->Project interpreter

나는 콘다 환경을 사용하고 있습니다.


1

훨씬 간단한 작업으로 나를 위해 일했습니다 .


File > Settings > Project > Project Interpreter 
> Select "No interpreter" in the "Project interpreter" list 
> Apply > Set your python interpreter again > Click Apply

이익-Pycharm은 골격을 업데이트하고 모든 것이 정상입니다.


0

vagrant오류를 사용 하는 경우 잘못된 파이썬 인터프리터로 인해 발생할 수 있습니다. 우리에서 vagrant우리가 사용하는 pyenvI 변경했다, 그래서 Python Interpreter path에서 경로 /usr/bin/python/home/vagrant/.pyenv/versions/vagrant/bin/python 여기에 이미지 설명을 입력하십시오


0

하나의 파일 src/이 동일한 디렉토리의 다른 파일을 가져 오는 프로젝트가 있습니다. PyCharm이 인식하도록하려면 파일> 설정> 프로젝트> 프로젝트 구조로 이동하여 선택하십시오.src 폴더를 하고 "마크 : 소스"를 클릭해야합니다.

에서 https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-root.html

소스 루트 에는 실제 소스 파일과 리소스가 포함됩니다. PyCharm은 소스 루트를 가져 오기 가져 오기의 시작점으로 사용합니다.


0

내 문제는 Flask-WTFPyCharm으로 해결되지 않는다는 것 입니다. 캐시를 다시 설치 한 다음 캐시 및 다시 시작 을 설치하거나 무효화 하려고했습니다. PyCharm을 여전히 작동하지 않습니다.

그런 다음이 솔루션을 생각해 냈고 완벽하게 작동합니다.

  1. 열기 프로젝트 통역 으로 Ctrl + Alt + S 다음 (윈도우)를 클릭합니다 (+)를 설치하여 새로운 packgage을.

여기에 이미지 설명을 입력하십시오

  1. PyCharm으로 해결되지 않은 패키지를 입력 한 다음 패키지 설치 를 클릭하십시오 . 그런 다음 확인을 클릭하십시오 .

여기에 이미지 설명을 입력하십시오

이제 라이브러리가 해결 된 것을 볼 수 있습니다.


-1

virtualenv를 사용하고 있습니까?

그렇다면 원하는 python.exe의 위치가 변경 될 때마다 PyCharm에 알려야합니다 (PyCharm에는 ./activate만으로는 충분하지 않습니다).

Pycharm이 올바른 인터 페터 및 패키지를 가리키는 지 확인하십시오 (파일-> 설정-> 프로젝트-> 프로젝트 인터프리터). 톱니 바퀴를 클릭하고 virtualenv의 Scripts 폴더에서 python.exe를 선택하십시오.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.