[python] PyCharm 오류 : 자체 모듈을 가져 오려고 할 때 ‘모듈 없음'(파이썬 스크립트)

모듈 ( my_mod.py폴더에 있는 파일 파일 my_module)을 작성했습니다. 현재 cool_script.py폴더 에있는 파일에서 작업 하고 있습니다 cur_proj. File-open을 사용하여 PyCharm에서 폴더를 열었습니다 (따라서 PyCharm 프로젝트라고 가정합니다).

ProjectView (CMD-7)에서 내 프로젝트 cur_proj(빨간색)를 볼 수 있고 “외부 라이브러리”아래에 표시 my_module됩니다. cool_script.py에서 쓸 수 있습니다

from my_module import my_mod as mm

PyCharm도 my_mod를 제안합니다. 여태까지는 그런대로 잘됐다.

그러나 cool_script.py를 실행하려고하면 PyCharm에서
“my_module이라는 모듈이 없습니다”라고 말합니다.

나에게는 이상해 보인다. 왜냐하면

A) 터미널 (OS 10.10.2)의 파이썬에서는 모듈을 아무런 문제없이 가져올 수 있습니다-.bashrc의 PYTHONPATH에 해당하는 항목이 있습니다

B) PyCharm-설정-프로젝트 cur_proj-프로젝트 인터프리터-Python 인터프리터 옆에 CogWheel-자세히-선택한 인터프리터 아이콘의 경로를 표시하면 PYTHONPATH의 경로가 나타납니다 (필자가 생각하는 것처럼)

따라서 cool_script.py를 실행하려고하면 왜 오류가 발생합니까? – 내가 무엇을 놓치고 있습니까?

노트:

부록 2015 년 2 월 25 일

PyCharm에서 Run to Configuration-Edit Configurations로 이동하면 ” PYTHONPATH에 컨텐츠 루트 추가 “및 ” PYTHONPATH에 소스 루트 추가 ” 확인 표시가있는 두 가지 옵션이 있습니다 . 둘 다 체크하지 않으면 모듈을로드 할 수 있습니다.

이제 작동 하지만 왜 그렇 습니까?

추가 질문이 생겼습니다.

  • “컨텐츠 루트”란 무엇이며 “소스 루트”는 무엇입니까? 그리고 왜 PYTHONPATH에 무언가를 추가하면 어떻게 든 파괴됩니까?
  • 항상 두 옵션 모두를 선택 해제해야합니까 (따라서 기본값은 프로젝트 특정 구성뿐만 아니라 실행 / 디버그 구성 대화 상자의 왼쪽 패널)?


답변

자신의 모듈이 동일한 경로에있는 경우 경로를로 표시해야합니다 Sources Root. 프로젝트 탐색기에서 가져 오려는 디렉토리를 마우스 오른쪽 단추로 클릭하십시오. 그런 다음를 선택 Mark Directory As하고 선택하십시오 Sources Root.

이게 도움이 되길 바란다.


답변

그래서 당신이 가면

-> 설정-> 프로젝트 : My_project-> 프로젝트 구조,

소스 코드를 사용할 수있는 디렉토리 만 “소스”로 표시하십시오 (동일한 창에서 볼 수 있음). 소스 코드가있는 디렉토리는 파란색으로 바뀌어야합니다. 이제 같은 디렉토리에있는 모듈을 가져올 수 있습니다.


답변

PyCharm 커뮤니티 / 전문가 2018.2.1

나는 지금이 문제를 겪고 있었고 @Beatriz Fonseca와 @Julie가 지적한 것과 비슷한 방식으로 해결할 수있었습니다.

당신이로 이동합니다 File> – Settings-> Project: YourProjectName-> Project Structure., 당신은 당신이 현재에서 작업하는 프로젝트의 디렉토리 레이아웃을해야합니다 당신은 당신의 디렉토리를 이동하고 중 하나 인로 레이블을해야합니다 Source모든 소스 파일에 대한 디렉토리 또는 Resource가져 오기 전용 파일 의 폴더로 사용할 수 있습니다.

또한 __init__.py리소스 디렉토리 내에 파일을 가져 오거나 실제로 가져 오려는 위치에 파일 을 배치 하면 완벽하게 작동합니다.

이 답변이 누군가를 돕기를 희망하며 JetBrains 가이 성가신 버그를 해결하기를 바랍니다.


답변

내가 시도한 것은 내 파일이있는 위치를 찾는 것입니다.

예 : E:\git_projects\My_project\__init__.py is my location.

파일-> 설정-> 프로젝트 : 내 프로젝트-> 프로젝트 구조로 이동하여 언급 장소에 대한 내용 루트를 추가했습니다. E:\git_projects\My_project

그것은 나를 위해 일했다.


답변

my_module는 모듈이 아닌 폴더이며 폴더를 가져올 수 없으며 my_mod.py와 동일한 폴더로 이동 cool_script.py한 다음 수행하십시오 import my_mod as mm. 이것은 파이썬이 현재 디렉토리와에서만보고 있기 때문에 같은 디렉토리에 있지 않으면 sys.path찾을 수 없기 때문입니다.my_mod.py

또는 다른 디렉토리에서 가져 오는 방법을 알려주는 답변을 여기 에서 찾을 수 있습니다 .

다른 질문에 관해서는, 나는 PyCharm을 사용하지 않기 때문에 모르겠습니다.


답변

“PYTHONPATH에 소스 루트 추가”오류가 발생했습니다. 내 문제는 내가 좋아하는, 같은 이름을 가진 두 개의 폴더를하였습니다이었다 project/subproject1/thing/src그리고 project/subproject2/thing/src나는 둘 다 소스 루트로 표시했다. "thing"폴더 중 하나의 "thing1"이름 을 (고유 한 이름)으로 바꾸면 효과가 있습니다.

PyCharm이 선택된 소스 루트를 자동으로 추가하면 전체 경로를 사용하지 않으므로 동일한 이름의 폴더를 혼합합니다.


답변

파이썬 인터프리터가 코드를 찾을 수 없을 때 발생할 수 있습니다. 이 위치에서 코드를 찾으려면 Python을 명시 적으로 언급해야합니다.

그렇게하려면 :

  • 파이썬 콘솔로 이동
  • sys.path.extend(['your module location'])Python 콘솔에 추가하십시오 .

귀하의 경우 :

  • 파이썬 콘솔로 이동하십시오.
  • 처음에 다음 코드를 작성하십시오.

    import sys
    sys.path.extend([my module URI location])
  • 이 문장을 작성하면 다음 명령을 실행할 수 있습니다.

    from mymodule import functions