모듈 ( 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에 무언가를 추가하면 어떻게 든 파괴됩니까?
- 항상 두 옵션 모두를 선택 해제해야합니까 (따라서 기본값은 프로젝트 특정 구성뿐만 아니라 실행 / 디버그 구성 대화 상자의 왼쪽 패널)?
답변
자신의 모듈이 동일한 경로에있는 경우 경로를로 표시해야합니다 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