PyCharm에서 해결되지 않은 참조 문제


373

디렉토리 구조가 있습니다

├── simulate.py
├── src
│   ├── networkAlgorithm.py
│   ├── ...

그리고로 네트워크 모듈에 액세스 할 수 있습니다 sys.path.insert().

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

그러나 pycharm은 모듈에 액세스 할 수 없다고 불평합니다. pycham이 참조를 해결하도록 어떻게 가르 칠 수 있습니까?

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


4
src 폴더에 __init__.py파일이 있습니까?
— Puffin GDI

@Puffin GDI : 아니요. 그렇지 않습니다.
— prosseek

5
@PuffinGDI src 폴더에이 init .py 파일 이 필요 합니까?
— Jack Chi

예, 파이썬이 패키지를 식별하기 위해 : stackoverflow.com/questions/42094723/…
— rnoodle

클래스 이름을 변경하고 계속 작업합니다. 내가 뛰었을 때이 오류가 발생하여 완전히 이름 바꾸기를 잊어 버렸고 가져 오는 동안 pycharm 제안을 찾으려고했습니다. 젠장, 제안은 대소 문자를 구분합니다! -파이썬이 처음입니다!
— Vignesh Paramasivam

답변:


817

수동으로 추가 한 것은 실제로이 작업 을 수행하는 한 가지 방법이지만 더 간단한 방법이 있습니다. 즉 pycharm에게 src폴더를 소스 루트로 추가하고 싶다고 말한 다음 소스 루트를 파이썬에 추가하면됩니다. 통로.

이런 식으로 인터프리터 설정에 하드 코딩 할 필요가 없습니다.

  • src소스 컨텐츠 루트로 추가하십시오 .

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

  • 그런 다음 추가 소스를 다음에 추가하십시오 PYTHONPATH.

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

  • 이제 수입품이 해결됩니다.

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

이런 식으로 소스 루트로 원하는 것을 추가 할 수 있으며 문제가 해결됩니다. 당신은 그러나 소스 루트로 마크를 해지하면 됩니다 오류가 발생합니다 :

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

이 모든 것을 다시 시작하는 것을 잊지 마십시오. PyCharm 메뉴에서 File-> Invalidate Caches / Restart를 선택하십시오.


16
IntelliJ와 함께 Python 플러그인을 사용하는 경우에도 작동합니다.
— rob mayoff 2013

13
이 솔루션이 작동합니다. 문제는 다른 프로그래머가 svn에서 코드를 검색 할 때 "확인되지 않은 참조"오류 프롬프트를 제거하기 위해 동일한 설정을 다시 수행해야한다는 것입니다.
— Ben Lin

2
@GamesBrainiac의 해결책은 IDE가 "sys.path.insert (0,"./src ")"를 구문 분석하여이 특정 파일의 PYTHONPATH에 추가 한 다음 적절한 구문 분석을 수행 할 수 있다는 것입니다.
— 벤 린

2
또한 컨텐츠 루트 경로가 올바른지 확인해야합니다. pycharm 5의 환경 설정-> 프로젝트-> 프로젝트 구조에서 찾을 수 있습니다.
— lps

1
이상하게도 하위 디렉토리는 고려되지 않습니다. 예를 들어, 아래 src에 views폴더가있는 myview.py경우 시도 할 때 여전히 해결되지 않은 참조 오류가 발생합니다 from src.views.myview import <my_function>.
— SexyBeast

49
  1. 폴더 에서 __init__.py파일 확인src
  2. src폴더를 소스 루트로 추가
  3. 그런 다음 소스를 추가하십시오 PYTHONPATH(위 참조)
  4. PyCharm 메뉴에서 File-> Invalidate Caches / Restart를 선택하십시오.

11
이 마지막 단계는 내 솔루션에서 유일하게 누락 된 것입니다. 수락 된 답변이 이것을 추가 할 수 있습니다.
— aimbire

여기에 언급 된 마지막 단계가 없으면 허용 된 답변이 작동하지 않습니다. 허용 대답은뿐만 아니라이 단계를 추가해야합니다 /
— santhosh 쿠마

23

여전히이 문제를보고있는 사람은 PyCharm 2016.3에서 시도한 답변을 여전히 사용할 수 있습니다. UI가 변경되었을 수 있지만 옵션은 여전히 ​​동일합니다.

즉. 루트 폴더를 마우스 오른쪽 버튼으로 클릭하십시오-> '다음으로 디렉토리 표시'-> 소스 루트


1
이 토론에서 너무 많은 복잡한 답변. 여기에 제시된 솔루션은 나에게 너무나 효과적이었습니다.

16

모든 해결 방법을 테스트 한 후 살펴보고 Settings -> Project -> project dependencies다시 정렬하는 것이 좋습니다 .

pycharm prefrence


이것은 나를 위해 완벽하게 작동합니다. pygame거기에 설치 했지만 더 이상 해결되지 않은 참조 문제는 없습니다!
— Michal Przybylowicz


5

일반적으로 이것은 누락 된 패키지 문제입니다. 캐럿을 해결되지 않은 참조에 놓고을 눌러 Alt+Enter옵션을 표시하면 해결 방법을 알아야합니다.


4

수락 된 답변을 따른 후 다음을 수행하면 해결되었습니다.

File→ Settings→ Project <your directory/project>→Project Dependencies

가져 오기가 해결되지 않은 파일이있는 디렉토리 / 프로젝트를 선택하고 해당 프로젝트가 다른 프로젝트에 종속되어 있음을 Pycharm에 알리려면 확인란을 선택하십시오.

내 폴더 계층 구조는 질문의 계층 구조와 약간 다릅니다. 광산은 이렇게

├── MyDirectory  
│     └── simulate.py  
├── src  
│     ├── networkAlgorithm.py  
│     ├── ...

Pycharm에 src가 달려 있다고 말하면 MyDirectory문제가 해결되었습니다!


4

모든 답변이 실제로 도움이 되더라도 명시 적으로 설명해야 할 작은 정보가 있습니다.

  • 기본적으로 여러 계층 디렉토리가있는 프로젝트는 일부 속성이있는 패키지로 작동합니다.
  • 사용자 정의 로컬 생성 클래스를 가져 오려면 .py파일이 포함 된 디렉토리로 이동하여 해당 파일을 작성해야합니다 __init__.py.

이것이 도움이되는 이유는 파이썬이 디렉토리를 패키지를 포함하는 것으로 취급하도록하기 위해이 파일이 필요하기 때문입니다. 건배!


3

PyCharm을 통해 설치하십시오 (Community Edition과 함께 작동). Settings > Project > Project Interpreter아래 스크린 샷에서 녹색 + 아이콘을 열고 클릭하십시오. 두 번째 대화 상자가 열리면 패키지 이름을 입력하고 '패키지 설치'버튼을 클릭하십시오.

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



1

올바른 통역사를 사용하고 있는지 확인하십시오. 이 문제를 해결하기 위해 "해결되지 않은 참조 '장고'"오류가 발생했습니다. 프로젝트 설정에서 프로젝트 인터프리터 (Python 3을 Python 2.7로 변경)를 변경했습니다 : 프로젝트를 선택하고 파일-> 설정-> 프로젝트 :-> 프로젝트 인터프리터-> 찾아보기로 이동하십시오. 올바른 버전 또는 통역사를 선택하십시오 (예 : /usr/bin/python2.7).


1

필자의 경우 문제는 Virtual environment글로벌 사이트 패키지에 액세스 할 수 없었던 사용 중 이었습니다 . 따라서 인터프리터는 새로 설치된 패키지를 인식하지 못했습니다.

이 문제를 해결하려면 가상 인터프리터를 편집하거나 다시 작성하고 Inherit global site-packages옵션을 선택하십시오.

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


이것이 바람직하지 않은 결과를 초래하지 않고 가상 환경을 사용해야하는 한 가지 이유를 물리 치지 않습니까? 즉, 해당 환경을 어딘가에 배치하고 해당 글로벌 사이트 패키지가 설치되어 있으면 문제가있는 것입니다. 그것이 내가 생각했던 거죠.
— theStud54


0

PyCharm 2019.3.1에서 완료 src 폴더를 마우스 오른쪽 버튼으로 클릭-> "디렉토리를 다음으로 표시"-> "제외됨"을 클릭하면 src 폴더가 파란색이어야합니다.


-1

Pycharm은 venv를 사용합니다. venv의 콘솔에서 패키지를 명시 적으로 설치하거나로 이동해야합니다 settings -> project interpreter -> add interpreter -> inherit global site-packages.


-1

최신 버전의 pycharm u는 파일을 가져올 디렉토리 또는 python 패키지를 마우스 오른쪽 버튼으로 클릭하고 'Mark Directory As'-> 'Sources Root'를 클릭하면됩니다.


-1

이를 해결하는 가장 쉬운 방법은 pyCharm 소프트웨어에서 다음을 수행하는 것입니다.

파일> 설정> (프로젝트 : 프로젝트 이름)> 프로젝트 인터프리터>를 클릭하십시오.

그런 다음 오른쪽에있는 "+"아이콘을 클릭하여 원하는 패키지를 검색하고 설치하십시오.

코딩을 즐기십시오!


1
스택 오버플로에 오신 것을 환영합니다. 답변 해 주셔서 감사합니다. 이것이 정확할 수는 있지만, 앞으로는 더 자세한 내용없이 이미지 나 링크를 다른 사이트에 게시하지 마십시오. 링크가 어느 시점에서 작동을 멈출 수 있으므로이 답변은 다른 사용자에게는 유용하지 않습니다.
— CyberJacob

@CyberJacob 대단히 감사합니다. 귀하의 조언에 감사드립니다. 이미지를 삭제하고 대신 텍스트를 추가하여 답변을 수정했습니다.
— zaid.mohammed
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.