2016-07-15 1 views
-1

Macbook에서 프로젝트를하고 있는데, 시스템은 OS X 10.11.5입니다. 나는 거기 import__init__.py가 있어도 패키지 오류가 아닙니다.

처럼
from rec.par.b import * 

입니다 그리고 그것은 'No module name rec.par , rec is not a package' 같은 오류가 발생했습니다 파이썬 3.5 사용 a.py

rec-par/ 
    rec/ 
     __init__.py 
     cle/ 
      __init__.py 
      c.py 
     par/ 
      __init__.py 
      b.py 
     util/ 
      __init__.py 
      a.py 

같은 디렉토리를했다. sys.path에 'rec-par'경로를 추가했으며 cle/c.py에 동일한 가져 오기 명령에 오류가 없습니다.

질문 How to fix "Attempted relative import in non-package" even with __init__.py, python3 -m a.py에 사용 된 방법을 시도했습니다. 그러나 그것은 효과가 없었습니다.

내가 여기에 누락 된 것이 있습니까?

+0

최상위 폴더 (또는 가져 오기 경로의 다른 위치)에'rec.py' 파일이 있습니까? 예외 메시지는 "rec"로 보이는 것을 의미하는 것 같습니다. 올바른 것이 아닙니다. – Blckknght

답변

0

코드의 모듈을 "rec-par"라고하지만 가져 오기를 시도 할 때 "rec.par"를 참조하십시오.

+1

'rec-par /'는 전체 프로젝트의 루트 경로입니다. 나는 그것을 'PYTHONPATH'(예 : 'cle /'의 다른 디렉토리에서 가져 오기에서 사용할 수 있음)에 추가했습니다. 'rec /'는 하위 디렉토리이고 'rec-par /', 'par/'는'rec/'패키지입니다. 'rec.par'는 PYTHONPATH rec-par와 같습니다. 너는 두 가지 다른 것들이다. – karajan1001

0

좋아,이 문제를 해결했습니다. 디렉토리 util/__pycache__ 디렉토리 패키지와 동일한 이름을 가진 par.cpython-35.py 파일이 있습니다. 이것은 혼란을 야기했다. 삭제 된 후에 문제가 해결되었습니다.