development

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

big-blog 2020. 3. 31. 08:21
반응형

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


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


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


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


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

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

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

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


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

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

  • 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에서
  • 다른 통역사로 전환 한 다음 원하는 통역사로 다시 돌아가십시오.
  • 새 가상 환경을 작성하고 해당 환경의 인터프리터로 전환하십시오.
  • 다른 통역사로 전환하십시오. 다시 전환하지 마십시오.

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

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

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


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

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


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

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

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


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

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

문제 해결됨!


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

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


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


아주 쉽게

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

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

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

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

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

-playground
     -env
     -playground

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

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


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


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

# noinspection PyUnresolvedReferences

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


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

  1. 로컬 인터프리터 /usr/bin/pythonX.X로 전환하여 적용
  2. 위의 답변과 같은 경로보기
  3. 골격 경로를 찾으십시오. 광산은 (/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. Switch back to virt interpreter and add the skeletons path manually if it didn't automatically show up.

None of the above solutions worked for me!
If you are using virtual environment for your project make sure to apply the python.exe file that is inside your virtual environment directory as interpreter for the project (Alt + Ctrl + Shift + S) this solved the issue for me.


In my case the inspection error shows up due to a very specific case of python code. A min function that contains two numpy functions and two list accesses makes my code inspection give this kind of errors.

Removing the 'd=0' line in the following example gives an unresolved reference error as expected, but readding doesn't make the error go away for the code inspector. I can still execute the code without problems afterwards.

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])

Clearing caches and reloading list of paths doesn't work. Only altering the code with one of the following example patches does work:

  • Another ordering of the 'min' parameters: schematically S U T V but not S T U V or T S U V
  • Using a method instead of the function: S[d].abs() instead of np.abs(S[d])
  • Using the built-in abs() function
  • Adding a number to a parameter of choice: U[d] + 0.

None of the answers solved my problem.

What did it for me was switching environments and going back to the same environment. File->Settings->Project interpreter

I am using conda environments.


If you are using vagrant the error can be caused by wrong python interpreter. In our vagrant we are using pyenv so I had to change Python Interpreter path path from /usr/bin/python to /home/vagrant/.pyenv/versions/vagrant/bin/python 여기에 이미지 설명을 입력하십시오


Are you using virtualenv?

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

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

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

참고 URL : https://stackoverflow.com/questions/11725519/pycharm-shows-unresolved-references-error-for-valid-code

반응형