2013-09-04 2 views
1

Spyder를 사용하고 있습니다.자체 정의 패키지 및 모듈을 가져 오는 데 문제가 있습니까?

방금 ​​프로젝트를 시작했습니다. 그 아키텍처는 현재 나와 있습니다.

같이

enter image description here

, 지금 trajectorygeneration라는 모듈이 그 중 하나는이 개 패키지를 가지고있다. __init__.py 파일이 모두 자동으로 생성됩니다. 나는 main.py에 모듈을 수입하려고하지만 같은 오류 메시지와 함께 결국 :

>>> from generation import trajectorygeneration 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named generation 

가 어떻게이 문제를 해결할 수 있습니다?

+0

Spyder (기본적으로 모든 Python 용 IDE)는 PYTHONPATH를 사용하여 라이브러리를 찾습니다. Spyder가 모듈 및 패키지를 찾기 위해 사용하는 기본 검색 경로에서 이러한 패키지에 액세스 할 수 없다는 것이 문제 일 수 있습니다. PYTHONPATH를 수정하여 'main.py'를 실행하는 디렉토리를 포함시켜야합니다. 이 디렉토리에는 IDE가 찾을 수없는 패키지 'generation'이 포함되어 있습니다. 그렇지 않으면 코드를 올바르게 실행하기 위해 'main.py'와 같은 디렉토리에서 일반 파이썬 인터프리터를 사용해야합니다. – Shashank

+0

@ShashankGupta 현재 PYTHONPATH는 현재 프로젝트의 디렉토리입니다. 그것에 대해 아무 것도해야합니까? –

+0

흠. 그런 경우라면, 왜 파이썬이 '세대'모듈을 찾을 수 없는지 정말로 알 수 없다는 것을 유감스럽게 생각합니다. pythonpath는 대부분의 Python IDE가 모듈 찾기와 함께 작동하는 방식입니다. 개인적으로 Spyder를 사용하지는 않지만, 내가 인식하지 못하는 몇 가지 다른 경로 설정이있을 수 있습니다. – Shashank

답변

1

(여기에서 Spyder dev) 이것은 Spyder의 버그입니다. 우리는 PYTHONPATH에 프로젝트 경로를 추가하지 않기 때문에 프로젝트를 연 후에 콘솔에서 프로젝트를 가져올 수 없습니다. issue을 만들었습니다. 다음 주요 출시 (예 : 2.3)에서 해결해 드리겠습니다.

(@ Jblasco에서 언급했듯이) PYTHONPATH 관리자를 사용하여 프로젝트 경로를 직접 추가하는 것이 좋습니다. 그런 다음 변경 사항을 적용하려면 새 콘솔을 열어야합니다.

+0

예, 새 콘솔을 여는 것이 핵심입니다! –

0

세대가 경로에없고 파이썬에서 패키지를 찾을 수 없습니까?

참조 :

또한, 스파이더 당신이 그것을 어떤 폴더를 포함 할 수있는 "PYTHONPATH"관리자 (적어도 광산이있다)이 Expand Python Search Path to Other Source. 문제는이 방법으로 이렇게하면 파이썬 콘솔이 포함될 가능성이 높기 때문에 콘솔에서 가져올 수 없다는 것입니다.

+0

"pythonpath"관리자와 함께해야 할 일을 알려주시겠습니까? –

+0

내 버전에서는 pythonpath 관리자가 Tools에 있습니다. 열 때 빈 화면이 나타납니다. 경로 추가를 누르면 다른 화면이 열립니다. "클러스터링"폴더를 선택하고 동의하는 것이 좋습니다. 그러면 pythonpath에 추가됩니다. 나는 다시 강조합니다. 이것은 스파이더 만 작동합니다. – Jblasco

+0

그래, 정확히. 나는 똑같은 짓을했으나 오류가 남아있다. –

0

오타가 원인 인 것 같습니다.

사진에서 대상 파일 이름은 trajectorygeneration.py입니다. 그러나 main.py는 trajectorygeneration's' 모듈을 가져옵니다.

+0

죄송합니다. 's'는 우연히 그곳에 구멍 뚫려있다.실제 실행에는 오류 메시지에서 볼 수있는 것이 없습니다. 볼 itme을위한 Thnaks! –

+0

나는 그것을 본다. 문제 해결에 도움이되지 못해 죄송합니다. –

+0

어쨌든 당신의 친절에 감사드립니다! –

관련 문제