모듈 ( 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를 실행하려고하면 왜 오류가 발생합니까? - 내가 무엇을 놓치고 있습니까?
노트:
- 나는 다른 / 특별 파이썬 버전을 선언하지 cool_script.py의 상단에
- 경로 가 올바른지 확인했습니다 .
my_module
- 내가 넣어
__init__.py
파일 (빈 파일) 모두my_module
와의를cur_proj
- 사용하지 않습니다
virtualenv
부록 2015 년 2 월 25 일
PyCharm에서 Run to Configuration-Edit Configurations로 이동하면 " PYTHONPATH에 컨텐츠 루트 추가 "및 " PYTHONPATH에 소스 루트 추가 " 확인 표시가있는 두 가지 옵션이 있습니다 . 둘 다 체크하지 않으면 모듈을로드 할 수 있습니다.
이제 작동 하지만 왜 그렇 습니까?
추가 질문이 생겼습니다.
- "컨텐츠 루트"란 무엇이며 "소스 루트"는 무엇입니까? 그리고 왜 PYTHONPATH에 무언가를 추가하면 어떻게 든 파괴됩니까?
- 항상 두 옵션 모두를 선택 해제해야합니까 (따라서 기본값은 프로젝트 특정 구성뿐만 아니라 실행 / 디버그 구성 대화 상자의 왼쪽 패널)?
Enable Django Support
설정 Languages & Frameworks -> Django
을 확인 하지 않는 것입니다 . 장고 콘솔을 열어 가져 오기 문제가 발생했습니다.
from foldername.mymodule import mymethod
. 내가해야했던 또 다른 일은 모듈에 도달하는 데 사용할 모든 폴더에 빈 _init .py 폴더 를 추가하여from parentfolder.childfolder.mymodule ...
두 개의 폴더에 init이 필요한 경우입니다 . 폴더가 서로 상대적인 위치에sys.path